我正在尝试在Android中创建一个通知布局。我的目标是显示以下内容:
1:应用的图标 2:垂直堆叠的LinearLayout,其中包含会话标题和Room 3:会话的开始时间
我面临的问题是#2的宽度可变,具体取决于标题的大小。如果用户将手机侧向转动并进入横向模式,则硬编码宽度会很糟糕。因此,这是我的问题:
如何在Android中水平布局三个组件,使#1和#3分别左右对齐,而#2只占用剩余空间?
答案 0 :(得分:0)
看看RelativeLayout。你可以让你的中间LinearLayout使用android:layout_toLeftOf和android:layout_toRightOf强制它在中间。我通常会参考Android's Common Layout Object page以获得一个快速入门示例。我可能还有一个小小的警告,但我知道这是我曾经使用过的一般技巧,我很确定它有用。
答案 1 :(得分:0)
这样的事情可能是一个合理的基础:
<RelativeLayout
android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:id="@+id/ImageView01"
android:src="@drawable/droid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"></ImageView>
<LinearLayout
android:id="@+id/LinearLayout01"
android:layout_below="@id/ImageView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignTop="@+id/ImageView01"
android:layout_toRightOf="@+id/ImageView01"
android:background="#ffff00">
<TextView
android:text="This is wide, wide, title text"
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
<TextView
android:text="Short text"
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
<TextView
android:text="Middling wide text"
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
</LinearLayout>
<TextView
android:text="Right hand text"
android:id="@+id/TextView04"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/ImageView01"
android:background="#00ffff"></TextView>
</RelativeLayout>
你可能想在LinearLayout上硬编码一些左边距以给它一些间距
答案 2 :(得分:0)
与此斗争了几个小时后,我开始了解layout_weight的使用。似乎这是解决问题的适当方法
答案 3 :(得分:-1)
尝试这样的事情:
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView android:id="@+id/img1"
android:background="#00F"
android:layout_width="100dip"
android:layout_height="100dip"
android:layout_alignParentLeft="true"/>
<ImageView android:id="@+id/img2"
android:background="#0F0"
android:layout_width="0dip"
android:layout_height="100dip"
android:layout_toRightOf="@id/img1"
android:layout_toLeftOf="@+id/img3"/>
<ImageView android:id="@+id/img3"
android:background="#F00"
android:layout_width="150dip"
android:layout_height="100dip"
android:layout_alignParentRight="true"/>
</RelativeLayout>