android嵌套线性布局大小调整

android嵌套线性布局大小调整,android,android-layout,Android,Android Layout,我正在尝试为我的可扩展listview实现以下布局 问题: 在android previewer上,布局与预期一致: 请参阅下面附件中的第一张图片 但是,当我在模拟器或设备上运行它时,不会显示第二个TextView 请参阅下面附件中的第二张图片 我必须设置第二个ImageView(ivGroupIndicator)的高度以匹配父级,以便显示第二个TextView。但这会拉伸可展开箭头图标 请参阅下面附件中的最后一张图片 这是我的layout.xml <?xml version="1.0

我正在尝试为我的可扩展listview实现以下布局

问题:

在android previewer上,布局与预期一致:

请参阅下面附件中的第一张图片

但是,当我在模拟器或设备上运行它时,不会显示第二个TextView

请参阅下面附件中的第二张图片

我必须设置第二个ImageView(ivGroupIndicator)的高度以匹配父级,以便显示第二个TextView。但这会拉伸可展开箭头图标

请参阅下面附件中的最后一张图片

这是我的layout.xml

<?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="50dp"
    android:orientation="horizontal">

    <ImageView
        android:layout_width="25dp"
        android:layout_height="match_parent"
        android:src="@drawable/ci_hand_cursor"
        android:layout_gravity="center" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingLeft="5dp"
        android:paddingTop="5dp"
        android:layout_weight="0.8">

        <TextView
            android:id="@+id/route_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Dhelhi Belhi"
            android:fontFamily="sans-serif"
            android:textSize="16sp"
            android:textStyle="bold"
            android:textColor="@color/colorPrimaryText"
            android:paddingBottom="2dp"/>

        <TextView
            android:id="@+id/route_schedule_date"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="20-September-2017"
            android:fontFamily="sans-serif"
            android:textSize="14sp"
            android:textColor="@color/colorSecondaryText"
            android:paddingBottom="5dp"/>
    </LinearLayout>

    <ImageView
        android:id="@+id/ivGroupIndicator"
        android:layout_width="25dp"
        android:layout_height="match_parent"
        android:background="@drawable/group_indicator"
        android:layout_gravity="center"/>

</LinearLayout>


我在这里遗漏了什么?

这应该可以解决问题:

  • 使用砝码时,使用
    0dp
    作为高度/宽度
  • 权重只能是1(而不是0.8)
  • 在两个文本视图上使用相等的权重,以便它们共享相等的垂直空间
  • 在文本视图中将重力设置为“垂直居中”,使文本居中
  • 在图像上设置缩放类型,使其不会拉伸

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">
    
        <ImageView
            android:layout_width="25dp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:scaleType="centerInside"
            android:src="@drawable/ci_hand_cursor" />
    
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="vertical"
            android:paddingLeft="5dp"
            android:paddingTop="5dp">
    
            <TextView
                android:id="@+id/route_name"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:fontFamily="sans-serif"
                android:gravity="center_vertical"
                android:text="Dhelhi Belhi"
                android:textColor="@color/colorPrimaryText"
                android:textSize="16sp"
                android:textStyle="bold" />
    
            <TextView
                android:id="@+id/route_schedule_date"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:fontFamily="sans-serif"
                android:gravity="center_vertical"
                android:text="20-September-2017"
                android:textColor="@color/colorSecondaryText"
                android:textSize="14sp" />
        </LinearLayout>
    
        <ImageView
            android:id="@+id/ivGroupIndicator"
            android:layout_width="25dp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:background="@drawable/group_indicator"
            android:scaleType="centerInside" />
    </LinearLayout>
    
    
    

    • 这应该可以做到:

      • 使用砝码时,使用
        0dp
        作为高度/宽度
      • 权重只能是1(而不是0.8)
      • 在两个文本视图上使用相等的权重,以便它们共享相等的垂直空间
      • 在文本视图中将重力设置为“垂直居中”,使文本居中
      • 在图像上设置缩放类型,使其不会拉伸

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:orientation="horizontal">
        
            <ImageView
                android:layout_width="25dp"
                android:layout_height="match_parent"
                android:layout_gravity="center"
                android:scaleType="centerInside"
                android:src="@drawable/ci_hand_cursor" />
        
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:orientation="vertical"
                android:paddingLeft="5dp"
                android:paddingTop="5dp">
        
                <TextView
                    android:id="@+id/route_name"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:fontFamily="sans-serif"
                    android:gravity="center_vertical"
                    android:text="Dhelhi Belhi"
                    android:textColor="@color/colorPrimaryText"
                    android:textSize="16sp"
                    android:textStyle="bold" />
        
                <TextView
                    android:id="@+id/route_schedule_date"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:fontFamily="sans-serif"
                    android:gravity="center_vertical"
                    android:text="20-September-2017"
                    android:textColor="@color/colorSecondaryText"
                    android:textSize="14sp" />
            </LinearLayout>
        
            <ImageView
                android:id="@+id/ivGroupIndicator"
                android:layout_width="25dp"
                android:layout_height="match_parent"
                android:layout_gravity="center"
                android:background="@drawable/group_indicator"
                android:scaleType="centerInside" />
        </LinearLayout>
        
        
        

        • 问题可能是您将父布局的高度设置为50dp。尝试将其设置为包裹内容,并对垂直
          线性布局使用
          高度=0dp
          重量=1
          ,问题可能是您将父布局的高度设置为50dp。尝试将其设置为包裹内容,并对垂直
          线性布局使用
          height=0dp
          weight=1
          。问题可能是您将父布局的高度设置为50dp。试着把它包装起来。你能附上第二张图片吗?缺少。问题可能是您将父布局的高度设置为50dp。试着把它包装起来。你能附上第二张图片吗?它不见了。嗨,谢谢你的回复。这就是我现在所得到的:中间的布局被挤了起来,只是把最高的LinearLayout的高度提高到比 50dP更高的东西。可能
          80dp
          ?修复:)我更改了第二个LinearLayout的高度,以包装来自match\u父级的内容,这就成功了。谢谢你的回复。这就是我现在所得到的:中间的布局被挤了起来,只是把最高的LinearLayout的高度提高到比 50dP更高的东西。可能
          80dp
          ?修复:)我更改了第二个LinearLayout的高度,以包装来自match\u父级的内容,这就成功了。谢谢