我是android的新手,我有一个线性布局列表项,并希望TextView itemName填充行上剩余的空白区域,而其他两个视图(itemIcon和itemTimestamp)只占用他们需要的空间,因此使用了wrap_content .
我在ItemName android:layout_width上尝试了fill_parent和match_parent,但它最终隐藏了itemTimestamp视图.我尝试过RelativeLayout但没有运气,如果可能的话,我更愿意坚持使用Linearlayout.
感谢您的帮助.
android:id="@+id/itemNotificationBuzz"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffff0000"
>
android:id="@+id/notificationHeader"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="#ffff0000"
>
android:id="@+id/notificationIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:maxHeight="35dp"
android:maxWidth="35dp"
android:background="#FF000000"
android:padding="1dp"
android:src="@drawable/ic_action_place" />
android:id="@+id/notificationName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="5dp"
android:textSize="18sp"
android:textColor="@android:color/white"
android:background="#A4C739"
android:typeface="sans"
android:textStyle="bold"
android:maxLines="1"
android:text="Fname Lname"
/>
android:id="@+id/notificationTimestamp"
android:layout_width = "wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:background="#FF000000"
android:ems="10"
android:maxLines="1"
android:text="2m"
android:textColor="@android:color/white"
android:typeface="sans" />
解决方法:
如果你想使用LinearLayout,你可以通过在LinearLayout和layout_weight中使用weightSum属性为你的项目Name TextView实现你想要的.
android:id="@+id/notificationHeader"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffff0000"
android:orientation="horizontal"
android:weightSum="1">
android:id="@+id/notificationIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FF000000"
android:gravity="left"
android:maxHeight="35dp"
android:maxWidth="35dp"
android:padding="1dp"
android:src="@drawable/ic_launcher"/>
android:id="@+id/notificationName"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="#A4C739"
android:gravity="center"
android:maxLines="1"
android:padding="5dp"
android:text="Fname Lname"
android:textColor="@android:color/white"
android:textSize="18sp"
android:textStyle="bold"
android:typeface="sans"
android:layout_weight="1"/>
android:id="@+id/notificationTimestamp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FF000000"
android:gravity="right"
android:maxLines="1"
android:text="2m"
android:textColor="@android:color/white"
android:typeface="sans"/>
这将使您的项目名称填充所有空格,直到它到达最后一个元素.
注意:使用layout_weight时,必须将layout_width设置为0dp.而且你应该从你的最后一个元素中删除ems = 10,因为它会使你的notificationTimestamp元素具有更大的宽度,并且它会将Name元素向左推,留下一个空的空格.
标签:android,xml,android-layout
来源: https://codeday.me/bug/20190830/1766853.html