Android:如何在listview中显示前三项,在scroll中显示其余项
目前,我使用可见性“GONE”显示listview,然后单击按钮显示“visibility”,但它在listview中仅显示1项,在scrollview中显示其他元素(我需要滚动),因此我决定保持listview在listview滚动中至少显示3项,其余元素在listview滚动中显示。 如何解决这个问题,提前谢谢 第一张图片是我的代码Android:如何在listview中显示前三项,在scroll中显示其余项,android,listview,Android,Listview,目前,我使用可见性“GONE”显示listview,然后单击按钮显示“visibility”,但它在listview中仅显示1项,在scrollview中显示其他元素(我需要滚动),因此我决定保持listview在listview滚动中至少显示3项,其余元素在listview滚动中显示。 如何解决这个问题,提前谢谢 第一张图片是我的代码 一般来说,我需要在ScrollView中添加第二幅图像,这是一个坏主意 相反,您应该使用线性布局并在其中对列表项进行充气。 不难做到。就用for循环什么的。 如
一般来说,我需要在ScrollView中添加第二幅图像,这是一个坏主意 相反,您应该使用线性布局并在其中对列表项进行充气。 不难做到。就用for循环什么的。 如果必须使用ListView,则可以在填充ListView后对其调用以下方法 (将listAdapter.getCount()更改为要显示的单元格数
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
// pre-condition
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}
public static void setListViewHeightBasedOnChildren(ListView ListView){
ListAdapter ListAdapter=listView.getAdapter();
如果(listAdapter==null){
//前提条件
返回;
}
int totalHeight=0;
对于(int i=0;i
滚动视图中的列表视图通常是个坏主意
相反,您应该使用线性布局并在其中对列表项进行充气。
不是很难做到。只要使用for循环或其他什么。
如果必须使用ListView,则可以在填充ListView后对其调用以下方法
(将listAdapter.getCount()更改为要显示的单元格数
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
// pre-condition
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}
public static void setListViewHeightBasedOnChildren(ListView ListView){
ListAdapter ListAdapter=listView.getAdapter();
如果(listAdapter==null){
//前提条件
返回;
}
int totalHeight=0;
对于(int i=0;i