我在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>
答案 0 :(得分:2)
您不应在另一个滚动布局中添加相同的方向滚动布局。结果并不总是有意。这里你的listview包装到ListView的单个元素,因为你已经在Scrollview中添加了它。您不应该在第一时间执行此操作,但如果您无法更改布局,请执行以下更改:
答案 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);