ScrollView嵌套ListView只显示一行
来源:互联网 发布:jquery高级编程 微盘 编辑:程序博客网 时间:2024/05/18 09:11
- <</SPAN>LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" -
xmlns:tools="http://schemas.android.com/tools" -
android:layout_width="match_parent" -
android:layout_height="match_parent" -
android:background="#FFE1FF" -
android:orientation="vertical" > -
<</SPAN>ScrollView -
android:layout_width="match_parent" -
android:layout_height="match_parent" > -
<</SPAN>LinearLayout -
android:layout_width="match_parent" -
android:layout_height="match_parent" > -
<</SPAN>ListView -
android:id="@+id/listView1" -
android:layout_width="match_parent" -
android:layout_height="match_parent" -
android:fadingEdge="vertical" -
android:fadingEdgeLength="5dp" /> -
</</SPAN>LinearLayout> -
</</SPAN>ScrollView> - </</SPAN>LinearLayout>
在查阅的各种文档和资料后,发现在ScrollView中嵌套ListView空间,无法正确的计算ListView的大小,故可以通过代码,根据当前的ListView的列表项计算列表的尺寸。实现代码如下:
[java] view plain copy
- public
class MainActivity extendsActivity { -
private ListView listView; -
@Override -
protected void onCreate(Bundle savedInstanceState) { -
super.onCreate(savedInstanceState); -
setContentView(R.layout.activity_main); -
listView = (ListView) findViewById(R.id.listView1); -
String[] adapterData = new String[] "Afghanistan",{ "Albania",… … "Bosnia"}; -
listView.setAdapter(new ArrayAdapter( this,android.R.layout.simple_list_item_1,adapterData)); -
setListViewHeightBasedOn Children(listView); -
} -
public void setListViewHeightBasedOn Children(ListView listView) { -
// 获取ListView对应的Adapter -
ListAdapter listAdapter = listView.getAdapter(); -
if (listAdapter null)== { -
return; -
} -
-
int totalHeight 0;= -
for ( inti 0,= len = listAdapter.getCount(); i < len; i++) { -
// listAdapter.getCount()返回数据项的数目 -
View listItem = listAdapter.getView(i, null, listView); -
// 计算子项View 的宽高 -
listItem.measure(0, 0); -
// 统计所有子项的总高度 -
totalHeight += listItem.getMeasuredHeight(); -
} -
-
ViewGroup.LayoutParams params = listView.getLayoutParams(); -
params.height = totalHeight+ (listView.getDividerHeight() * (listAdapter.getCount() - 1)); -
// listView.getDividerHeight()获取子项间分隔符占用的高度 -
// params.height最后得到整个ListView完整显示需要的高度 -
listView.setLayoutParams(params); -
} - }
可以查看:
http://blog.csdn.net/p106786860/article/details/10461015
阅读全文
0 0
- 日积月累:ScrollView嵌套ListView只显示一行
- ScrollView嵌套ListView解决只显示一行
- ScrollView嵌套ListView只显示一行
- 穷年累月:ScrollView嵌套ListView只显示一行
- 日积月累:ScrollView嵌套ListView只显示一行
- ScrollView嵌套ListView只显示一行
- ScrollView嵌套ListView只显示一行
- ScrollView嵌套ListView只显示一行
- ScrollView嵌套ListView只显示一行
- ScrollView嵌套ListView只显示一行解决方案
- 日积月累:ScrollView嵌套ListView只显示一行
- ScrollView嵌套ListView只显示一行
- ScrollView嵌套ListView只显示一行
- ScrollView嵌套ListView只显示一行
- ScrollView嵌套ListView只显示一行
- ScrollView嵌套ListView只显示一行
- ScrollView嵌套ListView只显示一行
- ScrollView嵌套ListView只显示一行
- webstorm中提升工作效率方法之快捷键使用
- apk的反编译和抓包
- TabLayout和ViewPager联动
- xutils
- ViewPager+Fragment实现选项卡,并…
- ScrollView嵌套ListView只显示一行
- Android是否联网判断
- [模板]最小生成树 kruskal算法
- Android PopupWindow简单显示
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 Coin
- Java语法基础练习题(2)
- unity3d学习日记:使用[System.Serializable]在inspector面板内显示自定义数据类型类实例对象的内部数据
- Dubbo启动时对服务检查
- 并查集