我正在尝试制作一个布局,左侧是一个图像,然后是一个文本,右侧是两个图像。我现在向您展示它的样子:
我想把右边的两个图标放在屏幕边界旁边的右侧。然后,如果您看到,当文本超过一行时,两个图标就会消失,而当文本太长时,图标就会非常小。我希望每个图标都有一个静态空间。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="6dip">
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_marginRight="6dip"
android:layout_centerVertical="true"
android:src="@drawable/ic_launcher"
android:focusable="false"
android:focusableInTouchMode="false"
android:contentDescription="@string/cdLogo" />
<LinearLayout
android:id="@+id/lista2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:orientation="vertical"
android:paddingRight="20dip"
android:layout_toRightOf="@id/icon"
android:layout_marginRight="30dip">
<TextView
android:id="@+id/tituloevento"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="left"
android:textStyle="bold" />
<TextView
android:id="@+id/distritoevento"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="left"
android:textSize="12sp"/>
<TextView
android:id="@+id/coorp0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" />
<TextView
android:id="@+id/coorp1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" />
<TextView
android:id="@+id/esgratis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" />
</LinearLayout>
<LinearLayout
android:id="@+id/caracteristicas"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_toRightOf="@id/lista2"
android:layout_alignParentRight="true">
<ImageView
android:id="@+id/iconoMapa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/cdTieneCoor"
android:layout_weight="0.5"/>
<ImageView
android:id="@+id/iconoGratis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/cdGratisPago"
android:layout_weight="0.5"/>
</LinearLayout>
</RelativeLayout>
最佳答案
我建议你使用一个LinearLayout
作为顶层容器,用weight
属性分配子元素的空间。使用权重时,必须将水平布局的 layout_width
设置为 0dp
,垂直布局的 layout_heigth
必须设置为 0dp
。
例如:
<?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:orientation="horizontal" >
<ImageView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="5" >
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2" >
</LinearLayout>
</LinearLayout>
关于带有图像和文本的 Android 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24721045/