scrollView嵌套webview+listview listview显示不全 上拉listview加载更多

来源:互联网 发布:svg js设置 transform 编辑:程序博客网 时间:2024/06/06 09:49

最近项目需要,用到scrollView嵌套webview+listview来做展示,遇到了一些坑,记录下来。

先上效果图

直接上代码

布局文件

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="match_parent"    android:background="#f8f8f8"    android:orientation="vertical" >    <LinearLayout        android:id="@+id/rl_post_dateils_top"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="@drawable/top_bg"        android:orientation="horizontal" >        <ImageView            android:id="@+id/iv_post_details_back"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginLeft="16dp"            android:layout_marginTop="29dp"            android:src="@drawable/forums_back" />        <TextView            android:id="@+id/tv_post_details_title"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginLeft="120dp"            android:layout_marginTop="29dp"            android:text="正文"            android:textColor="@android:color/white"            android:textSize="18sp" />    </LinearLayout><-- AbPullToRefreshView 上拉加载更多的控件 -->    <com.ab.view.pullview.AbPullToRefreshView        android:id="@+id/reply_pull_refresh_view"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:layout_above="@+id/view_footer"        android:layout_below="@+id/rl_post_dateils_top" >        <include            android:id="@+id/scroll_view_content"            android:layout_width="match_parent"            android:layout_height="fill_parent"            layout="@layout/layout_post_details_content"            android:background="@android:color/white" />    </com.ab.view.pullview.AbPullToRefreshView>    <include        android:id="@+id/view_footer"        layout="@layout/layout_post_details_reply" /></RelativeLayout>

layout_post_details_content布局
<?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/sc_view"    android:layout_width="match_parent"    android:layout_height="fill_parent"    android:layout_marginBottom="40dp"    android:background="#f8f8f8"    android:orientation="vertical"    android:scrollbars="none" >    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="vertical" >        <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:background="#f8f8f8"            android:orientation="vertical" >            <LinearLayout                android:layout_width="match_parent"                android:layout_height="fill_parent"                android:layout_marginLeft="8dp"                android:layout_marginTop="8dp"                android:orientation="horizontal" >                <com.example.netprobe.view.CircleImageView                    android:id="@+id/iv_details_creator"                    android:layout_width="20dp"                    android:layout_height="20dp" >                </com.example.netprobe.view.CircleImageView>                <TextView                    android:id="@+id/tv_post_details_creator"                    android:layout_width="wrap_content"                    android:layout_height="wrap_content"                    android:layout_marginLeft="6dp"                    android:text="用户名"                    android:textColor="#989898" />                <TextView                    android:id="@+id/tv_post_details_createtime"                    android:layout_width="wrap_content"                    android:layout_height="wrap_content"                    android:layout_marginLeft="140dp"                    android:text="时间"                    android:textColor="#989898" />            </LinearLayout>            <TextView                android:id="@+id/tv_post_details_Title"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_marginBottom="4dp"                android:layout_marginLeft="8dp"                android:layout_marginTop="6dp"                android:maxLines="1"                android:text="标题"                android:textSize="18sp"                android:textStyle="bold" />        </LinearLayout>        <View            android:layout_width="match_parent"            android:layout_height="1dp"            android:background="#e5e5e5" />        <LinearLayout            android:layout_width="match_parent"            android:layout_height="fill_parent"            android:focusable="true"            android:focusableInTouchMode="true" >            <WebView                android:id="@+id/wv_post_details_content"                android:layout_width="match_parent"                android:layout_height="wrap_content" />        </LinearLayout>        <View            android:layout_width="match_parent"            android:layout_height="1dp"            android:background="#e5e5e5" />        <LinearLayout            android:layout_width="match_parent"            android:layout_height="fill_parent"            android:focusable="true"            android:focusableInTouchMode="true" >                <com.example.netprobe.view.MyListView                    android:id="@+id/lv_postreply_list"                    android:layout_width="match_parent"                    android:layout_height="fill_parent"                    android:cacheColorHint="#00000000"                    android:fadingEdge="none"                    android:focusable="false"                    android:listSelector="@android:color/transparent"                    android:soundEffectsEnabled="false" >                </com.example.netprobe.view.MyListView>              </LinearLayout>    </LinearLayout></ScrollView>
view_footer布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="42dp"
    android:layout_alignParentBottom="true"
    android:background="#efeeee"
    android:orientation="horizontal" >


    <EditText
        android:id="@+id/tv_postreply"
        android:layout_width="240dp"
        android:layout_height="30dp"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="16dp"
        android:background="@drawable/atom_edit_bg" />


    <Button
        android:id="@+id/btn_send_postreply"
        android:layout_width="70dp"
        android:layout_height="30dp"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="18dp"
        android:layout_marginRight="8dp"
        android:background="@drawable/btn_blue_bg"
        android:gravity="center"
        android:text="评论" />


</LinearLayout>

webview 和listview的上一级要加上
 android:focusable="true" android:focusableInTouchMode="true"
listview 最好是自己自定义一个  item的布局最好不要用RelativeLayout
到这个地方listview应该就可以完全显示了
还有状态栏我这里设置了透明
 if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) {            // 透明状态栏            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);        } 
在清单文件里的activity里加上
android:windowSoftInputMode="stateHidden|adjustResize"
并在setContentView(R.layout.*******);后加上AndroidBug5497Workaround.assistActivity(this);软键盘在全屏下的布局计算
到这里就实现了这个效果。

实现这个效果搜了很多,看了很多同样的博客,但很多都是没用的 例如 android:fitsSystemWindows="true"什么的 还有说其他的。但还是感谢大家的无私奉献。希望这篇文章对有需要的人会有帮助,最重要的是自己要多动手。

阅读全文
0 0