ScrollView中的ListView不显示Android的所有项目

时间:2017-07-26 09:29:27

标签: java android listview scrollview

我在ListView中有一些问题ScrollView没有显示所有项目

我尝试this code,它可以工作,但在适配器中处理需要很长时间。

我尝试过this code,速度更快,但不显示所有项目

我该如何解决?

注意:我的ListView ID为lv_poll_feed

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/color_white">

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/lay_edit_comment"
    android:scrollbars="none">

    <RelativeLayout
        android:id="@+id/lay_big"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <RelativeLayout
            android:id="@+id/lay_body_timeline_detail_detail"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/view_line_4">

            <TextView
                android:id="@+id/tx_time_timeline_detail_user"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:padding="10dp"
                android:text="-"
                android:textColor="@color/color_gray_light"
                android:textSize="@dimen/tx_size_smally_time"/>

            <RelativeLayout
                android:id="@+id/lay_profile_detail_detail"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/tx_time_timeline_detail_user"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:layout_marginLeft="0dp"
                android:layout_marginRight="0dp">

                <TextView
                    android:id="@+id/tx_timeline_detail_detail"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:padding="10dp"
                    android:text="-"
                    android:textColor="@color/tx_color_token"
                    android:textSize="@dimen/tx_size_small"/>

                <RelativeLayout
                    android:id="@+id/lay_center"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/tx_timeline_detail_detail"
                    android:layout_marginBottom="5dp"
                    android:layout_marginTop="10dp"
                    android:gravity="center"
                    android:visibility="visible">

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

                        <TextView
                            android:id="@+id/tx_catego_topic"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="10dp"
                            android:background="@drawable/bg_button"
                            android:padding="5dp"
                            android:text="xxxxxxx"
                            android:textColor="@color/color_white"
                            android:textSize="@dimen/tx_size_small"
                            android:visibility="gone"/>

                        <com.cunoraz.tagview.TagView xmlns:tagview="http://schemas.android.com/apk/res-auto"
                                                     android:id="@+id/tagCloudLinkView_topic"
                                                     android:layout_width="match_parent"
                                                     android:layout_height="match_parent"
                                                     android:layout_margin="10dp"
                                                     tagview:lineMargin="5dp"
                                                     tagview:tagMargin="5dp"
                                                     tagview:theme="@style/AppTheme"/>

                        <ListView
                            android:id="@+id/lv_poll_feed"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="10dp"
                            android:divider="@null"
                            android:visibility="visible">
                        </ListView>
                    </LinearLayout>
                </RelativeLayout>

                <ImageView
                    android:id="@+id/img_timeline_profile_detail_list"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/tx_timeline_detail_detail"
                    android:adjustViewBounds="true"
                    android:visibility="visible"/>
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/lay_timeline_detail_emoji"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/lay_profile_detail_detail"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:focusable="false"
                android:focusableInTouchMode="false"
                android:padding="10dp">

                <LinearLayout
                    android:id="@+id/lay_big_emoji"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:visibility="visible"
                    android:weightSum="3">

                    <LinearLayout
                        android:id="@+id/lay_emoji1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="0"
                        android:orientation="horizontal"
                        android:visibility="visible">

                        <ImageView
                            android:layout_width="20dp"
                            android:layout_height="20dp"
                            android:src="@drawable/amazed_1"/>

                        <TextView
                            android:id="@+id/tx_number_emoji_1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="5dp"
                            android:text=""
                            android:textSize="@dimen/tx_size_smally_time"/>
                    </LinearLayout>

                    <LinearLayout
                        android:id="@+id/lay_emoji2"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_weight="0"
                        android:orientation="horizontal"
                        android:visibility="visible">

                        <ImageView
                            android:layout_width="20dp"
                            android:layout_height="20dp"
                            android:src="@drawable/funny_2"/>

                        <TextView
                            android:id="@+id/tx_number_emoji_2"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="5dp"
                            android:text=""
                            android:textSize="@dimen/tx_size_smally_time"/>
                    </LinearLayout>

                    <LinearLayout
                        android:id="@+id/lay_emoji3"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_weight="0"
                        android:orientation="horizontal"
                        android:visibility="visible">

                        <ImageView
                            android:layout_width="20dp"
                            android:layout_height="20dp"
                            android:src="@drawable/love_3"/>

                        <TextView
                            android:id="@+id/tx_number_emoji_3"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text=""
                            android:textSize="@dimen/tx_size_smally_time"/>
                    </LinearLayout>

                    <LinearLayout
                        android:id="@+id/lay_emoji4"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_weight="0"
                        android:orientation="horizontal"
                        android:visibility="visible">

                        <ImageView
                            android:layout_width="20dp"
                            android:layout_height="20dp"
                            android:src="@drawable/sorrow_2"/>

                        <TextView
                            android:id="@+id/tx_number_emoji_4"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="5dp"
                            android:text=""
                            android:textSize="@dimen/tx_size_smally_time"/>
                    </LinearLayout>

                    <LinearLayout
                        android:id="@+id/lay_emoji5"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_weight="0"
                        android:orientation="horizontal"
                        android:visibility="visible">

                        <ImageView
                            android:layout_width="20dp"
                            android:layout_height="20dp"
                            android:src="@drawable/anger_5"/>

                        <TextView
                            android:id="@+id/tx_number_emoji_5"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="5dp"
                            android:text=""
                            android:textSize="@dimen/tx_size_smally_time"/>
                    </LinearLayout>

                    <LinearLayout
                        android:id="@+id/lay_emoji6"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_weight="0"
                        android:orientation="horizontal"
                        android:visibility="visible">

                        <ImageView
                            android:layout_width="20dp"
                            android:layout_height="20dp"
                            android:src="@drawable/horrified_6"/>

                        <TextView
                            android:id="@+id/tx_number_emoji_6"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="5dp"
                            android:text=""
                            android:textSize="@dimen/tx_size_smally_time"/>
                    </LinearLayout>
                </LinearLayout>
            </RelativeLayout>

            <View
                android:id="@+id/view_line_5"
                android:layout_below="@+id/lay_timeline_detail_emoji"
                android:layout_marginTop="5dp"
                android:background="@color/text_bottombar"/>

            <RelativeLayout
                android:id="@+id/lay_body_quest_topic"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/view_line_5"
                android:layout_marginTop="5dp">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:weightSum="6">

                    <LinearLayout
                        android:id="@+id/lay_timeline_detail_up"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_weight="2"
                        android:focusable="false"
                        android:focusableInTouchMode="false"
                        android:gravity="center"
                        android:orientation="horizontal"
                        android:padding="5dp">

                        <ImageView
                            android:id="@+id/img_up"
                            android:layout_width="20dp"
                            android:layout_height="20dp"
                            android:src="@drawable/up_1"/>

                        <TextView
                            android:id="@+id/tx_timeline_detail_up"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_centerHorizontal="true"
                            android:layout_centerVertical="true"
                            android:layout_marginLeft="5dp"
                            android:text="@string/tx_up"
                            android:textColor="@color/tx_color_token"
                            android:textSize="@dimen/tx_size_smally"/>

                        <TextView
                            android:id="@+id/tx_timeline_detail_number_up"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_centerHorizontal="true"
                            android:layout_centerVertical="true"
                            android:text=" 53"
                            android:textColor="@color/tx_color_token"
                            android:textSize="@dimen/tx_size_smally"/>
                    </LinearLayout>

                    <LinearLayout
                        android:id="@+id/lay_timeline_detail_comment"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_weight="2"
                        android:gravity="center"
                        android:orientation="horizontal"
                        android:padding="5dp">

                        <ImageView
                            android:id="@+id/img_comment"
                            android:layout_width="20dp"
                            android:layout_height="20dp"
                            android:src="@drawable/comment_1"/>

                        <TextView
                            android:id="@+id/tx_timeline_detail_comment"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_centerHorizontal="true"
                            android:layout_centerVertical="true"
                            android:layout_marginLeft="5dp"
                            android:text="@string/tx_comment"
                            android:textColor="@color/tx_color_token"
                            android:textSize="@dimen/tx_size_smally"/>

                        <TextView
                            android:id="@+id/tx_timeline_detail_number_comment"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_centerHorizontal="true"
                            android:layout_centerVertical="true"
                            android:text=" 53"
                            android:textColor="@color/tx_color_token"
                            android:textSize="@dimen/tx_size_smally"/>
                    </LinearLayout>

                    <LinearLayout
                        android:id="@+id/lay_profile_detail_share"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_weight="2"
                        android:gravity="center"
                        android:orientation="horizontal"
                        android:padding="5dp">

                        <ImageView
                            android:layout_width="20dp"
                            android:layout_height="20dp"
                            android:src="@drawable/share_1"/>

                        <TextView
                            android:id="@+id/tx_timeline_detail_share"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_centerHorizontal="true"
                            android:layout_centerVertical="true"
                            android:layout_marginLeft="5dp"
                            android:text="@string/tx_share"
                            android:textColor="@color/tx_color_token"
                            android:textSize="@dimen/tx_size_smally"/>

                        <TextView
                            android:id="@+id/tx_timeline_detail_number_share"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_centerHorizontal="true"
                            android:layout_centerVertical="true"
                            android:text=" "
                            android:textColor="@color/tx_color_token"
                            android:textSize="@dimen/tx_size_smally"/>
                    </LinearLayout>
                </LinearLayout>
            </RelativeLayout>

            <View
                android:id="@+id/view_line_3"
                android:layout_width="match_parent"
                android:layout_height="3dp"
                android:layout_below="@+id/lay_body_quest_topic"
                android:layout_marginTop="5dp"
                android:background="@color/bottombar"/>

            <RelativeLayout
                android:id="@+id/lay_timeline_detail_select_emoji_profile"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_above="@+id/lay_body_quest_topic"
                android:layout_marginBottom="-10dp"
                android:background="@drawable/bg_emoji"
                android:visibility="gone">

                <LinearLayout
                    android:id="@+id/lay_star"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/tx_name_detail"
                    android:gravity="center"
                    android:orientation="horizontal">

                    <RadioGroup
                        android:id="@+id/radioGroupQuest"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center"
                        android:orientation="horizontal"
                        android:padding="0dp">

                        <RadioButton
                            android:id="@+id/emoji1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginRight="15dp"
                            android:background="@drawable/img_emoji_amazed"
                            android:button="@android:color/transparent"
                            android:checked="false"
                            android:gravity="center"/>

                        <RadioButton
                            android:id="@+id/emoji2"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginRight="15dp"
                            android:background="@drawable/img_emoji_funny"
                            android:button="@android:color/transparent"
                            android:checked="false"/>
                    </RadioGroup>
                </LinearLayout>
            </RelativeLayout>
        </RelativeLayout>
    </RelativeLayout>
</ScrollView>

2 个答案:

答案 0 :(得分:2)

您不应在另一个滚动布局中添加相同的方向滚动布局。结果并不总是有意。这里你的listview包装到ListView的单个元素,因为你已经在Scrollview中添加了它。您不应该在第一时间执行此操作,但如果您无法更改布局,请执行以下更改:

  1. ListView 更改为 RecyclerVie w并相应更改适配器
  2. 此外,将 ScrollView 更改为 NestedScrollView

答案 1 :(得分:0)

您可以使用此功能:

public static void setListViewHeight(ListView listView) {
    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter == null)
        return;

    int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.UNSPECIFIED);
    int totalHeight = 0;
    View view = null;
    for (int i = 0; i < listAdapter.getCount(); i++) {
        view = listAdapter.getView(i, view, listView);
        if (i == 0)
            view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth, LayoutParams.WRAP_CONTENT));

        view.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
        totalHeight += view.getMeasuredHeight();
    }
    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
    listView.setLayoutParams(params);
}

并设置如下:

ListView list = (ListView) view.findViewById(R.id.listview);
setListViewHeightBasedOnChildren(list);