Android 自定义adapter的getView中的ViewGroup parent的宽度不正确

RT

Android 自定义adapter的getView中的ViewGroup parent的宽度不正确

ViewGroup.getMeasuredWidth() 可以获取到当前Activity的宽度,但是如果是在内部布局文件中添加了Padding这里是获取不到的

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ll_content"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="30dp"
    android:paddingRight="30dp"
>

    <ListView
        android:id="@+id/lv_list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
     >
     ListView>
LinearLayout>

如果获取通过自定义Adapter的getView中的ViewGroup parent.getMeasuredWidth()获取的宽度为最大的宽度。非ListView实际宽度,具体可看看API。 (为检测是布局中的大小还是屏幕尺寸)
如果在ListView还未赋值之前获取ListView的宽度是-1

要获取ListView的实际宽度可以简单的写成
parent.getMeasuredWidth()- ll_content.getPaddingLeft() - ll_content.getPaddingRight()
就可以获取到当前listView的实际宽度

你可能感兴趣的:(1-3:Android)