Android 将抽屉布局与片段一起使用时,设置ListView的LayoutParams
我想更改我的Android 将抽屉布局与片段一起使用时,设置ListView的LayoutParams,android,listview,layoutparams,drawerlayout,Android,Listview,Layoutparams,Drawerlayout,我想更改我的列表视图的宽度和高度,它位于我的抽屉布局中: DrawerLayout mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); DrawerLayout.LayoutParams myParam = new DrawerLayout.LayoutParams(20, 20); mDrawerList.setLayoutParams(myParam); 但我得到了这个错误: 06-21 09:30:57.361
列表视图的宽度和高度,它位于我的抽屉布局中
:
DrawerLayout mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
DrawerLayout.LayoutParams myParam = new DrawerLayout.LayoutParams(20, 20);
mDrawerList.setLayoutParams(myParam);
但我得到了这个错误:
06-21 09:30:57.361: E/AndroidRuntime(12583): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jk.demo/com.jk.demo.MemoStart}:
java.lang.IllegalArgumentException: View android.widget.ListView{414506a8 VFED.VC. ......I. 0,0-0,0 #7f04003a app:id/left_drawer} is not a sliding drawer
drawer\u main.xml
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ListView
android:id="@+id/left_drawer"
android:layout_width="540dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#111"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp" />
有什么解决方案吗?在不创建新的layoutParam对象的情况下,您可以像这样设置listview的宽度/高度
mDrawerList.getLayoutParams().width = 20;
mDrawerList.getLayoutParams().height = 20;
请注意,20
以像素为单位。如果您想(通常)设置dp值,则需要进行一些转换
int widthDp = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, getResources().getDisplayMetrics());
int heightDp = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, getResources().getDisplayMetrics());
mDrawerList.getLayoutParams().width = widthDp;
mDrawerList.getLayoutParams().height = heightDp;
若您使用自定义的列表视图适配器,则可以在最后一项中为适当的图片充气
为了不遗漏最后一项,您可以将无效数据添加到列表数据中即使使用ListView.LayoutParams:ListView.LayoutParams myParam=new ListView.LayoutParams(20,20)代码>这是我的错误:06-30 20:57:30.431:E/AndroidRuntime(18212):
原因:java.lang.IllegalArgumentException:
查看android.widget.ListView{4271e6f0 V.ED.VC…….I.0,
0-0,0\7f040035 app:id/left\u drawer}不是滑动抽屉
int widthDp = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, getResources().getDisplayMetrics());
int heightDp = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, getResources().getDisplayMetrics());
mDrawerList.getLayoutParams().width = widthDp;
mDrawerList.getLayoutParams().height = heightDp;