android xml listview在与其他视图合并时不循环

时间:2018-03-30 09:57:46

标签: android listview

enter image description here

现在我的当前视图被保留在图片中,我希望我的视图像右图一样。我当前视图中的列表视图不是循环,但我希望listview循环其他数据

这是我的xml

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <ImageView
                android:id="@+id/detail_gambar_forum"
                android:layout_width="match_parent"
                android:layout_height="250dp"
                android:layout_marginTop="-30dp"/>

            <TextView
                android:id="@+id/detail_judul_forum"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="20sp"
                android:textStyle="bold"
                android:layout_marginTop="-15dp"/>

            <TextView
                android:id="@+id/detail_pengirim_forum"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="12sp"
                android:textColor="@color/timestamp"/>

            <TextView
                android:id="@+id/detail_tanggal_forum"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="12sp"
                android:textColor="@color/timestamp"/>

            <Space
                android:layout_width="wrap_content"
                android:layout_height="40dp" />
            <TextView
                android:id="@+id/detail_isi_forum"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="1dp"
                android:layout_marginLeft="1dp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20sp"
                android:text="Komentar"/>

            <LinearLayout 
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="vertical" >

            <ListView
                android:id="@+id/list_detail"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                />

            <Space
                android:layout_width="wrap_content"
                android:layout_height="100dp" />
            </LinearLayout>
        </LinearLayout>

</ScrollView>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <EditText
        android:id="@+id/text_komentar"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_marginLeft="2dp"
        android:lines="5"
        android:gravity="top"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_toLeftOf="@+id/button5"
        android:background="@color/white"
        android:hint="Masukkan Komentar" />

    <ImageButton
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_marginRight="2dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:background="@color/white"
        android:src="@drawable/btn_next" />

</RelativeLayout>

但如果我删除其他视图并且只有listview,则listview可以循环,所以java没有问题。

此代码,如果我删除其他一些视图

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <ListView
            android:id="@+id/list_detail"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            />

    </LinearLayout>

1 个答案:

答案 0 :(得分:2)

您可以使用自定义列表视图

public class NonScrollableListview extends ListView {

public NonScrollableListview(Context context) {
    super(context);
}
public NonScrollableListview(Context context, AttributeSet attrs) {
    super(context, attrs);
}
public NonScrollableListview(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec(
            Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
    super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom);
    ViewGroup.LayoutParams params = getLayoutParams();
    params.height = getMeasuredHeight();
}
}

使用 NestedScrollView 代替ScrollView。

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:fillViewport="true">
    <!--otherviews-->
     <com.yourpack.NonScrollableListview
                android:id="@+id/list_detail"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
    <!--otherviews-->
   </android.support.v4.widget.NestedScrollView>