Android 布局图\u重量与应有重量相反
在下面的xml中,我试图绘制一个包含两个块(LinearLayout和TextView)的布局。我希望LinearLayout比TextView大5倍。这个xml产生的结果与我预期的完全相反,TextView占用的空间是LinearLayout的5倍。请注意,我已经将两个元素的宽度都设置为0dp,这是一个常见的疏忽Android 布局图\u重量与应有重量相反,android,android-linearlayout,android-layout-weight,Android,Android Linearlayout,Android Layout Weight,在下面的xml中,我试图绘制一个包含两个块(LinearLayout和TextView)的布局。我希望LinearLayout比TextView大5倍。这个xml产生的结果与我预期的完全相反,TextView占用的空间是LinearLayout的5倍。请注意,我已经将两个元素的宽度都设置为0dp,这是一个常见的疏忽 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas
<?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:paddingLeft="15dp"
android:paddingRight="15dp"
android:layout_gravity="center_vertical"
android:weightSum="6"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="0dip"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="5" >
<TextView
android:id="@+id/result_title_textview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="Arial"
android:textColor="#222222"
android:textSize="14sp"/>
<TextView
android:id="@+id/result_info_textview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="Arial"
android:textColor="#777777"
android:textSize="12sp" />
</LinearLayout>
<TextView
android:id="@+id/result_distance_textview"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fontFamily="Arial"
android:textColor="#ffffffff"
android:textSize="14sp" />
</LinearLayout>
编辑:此布局实际上是包含在此列表中的列表项:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/results_list_fragment_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="15dp" >
<ListView
android:id="@+id/search_results_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/scrollable_content_background"
android:divider="@drawable/listview_divider"
android:dividerHeight="1dp" >
</ListView>
</LinearLayout>
问题来自具有“包裹内容”宽度的容器列表。更改为“匹配父项”修复了该问题
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/results_list_fragment_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="15dp" >
<ListView
android:id="@+id/search_results_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/scrollable_content_background"
android:divider="@drawable/listview_divider"
android:dividerHeight="1dp" >
</ListView>
</LinearLayout>
我也遇到了同样的问题,解决方法是改变:
- 如果父
具有线性布局
,则子视图到0dp的宽度orientation=“horizontal”
- 如果父级
具有LinearLayout
,则子视图到0dp的高度orientation=“vertical”