在做个更新的Dialog,想到更新详情的时候感觉加载一个listview扩展性会好一点。
所以加入Listview
想要的效果是,我listview的height是固定的,然后我希望listview item 可以自适应listview 的 height ,比如只有一个的时候我们就让这个item在listview中垂直居中。
多条的话,即可以滚动,然后把listview的高度平均分配。
item的xml文件必须在根的基础上再嵌套一个LinearLayout。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:gravity="center_vertical"
android:id="@+id/tv_listview_desc"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:textColor="#504e51" />
</LinearLayout>
</LinearLayout>
把这段代码放到用Hodler 去findviewByid去寻找view的时候。
mLl_listview 是Dialog中的Listview //
LinearLayout.LayoutParams linearParams = (LinearLayout.LayoutParams) mLl_listview .getLayoutParams(); ListAdapter listAdapter = mListView.getAdapter(); if (listAdapter == null) { // pre-condition return; } int mAdapterCount = mListView.getAdapter().getCount(); if(mAdapterCount >= 3) { //当条目大于3的时候,就不再平分listview的Height了,继续平分的话,就不会滑动了,所以我采用三个 linearParams.height = mListView.getHeight() / 3; }else { linearParams.height = mListView.getHeight() / mAdapterCount; //当条目不大于3的时候可以直接平分listview height } mLl_listview.setLayoutParams(linearParams); //把参数设置进去
刚接触写博客所以很乱 sorry