Android 两种固定宽度的布局和一种中间流动宽度的布局
Android Two layout with fixed width in the sides and one layout with fluid widht in the middle
我需要使列表视图的一行如下:
该行由三列组成,左边必须包含一个布局,中间有背景颜色和文本,右边是相同的,但有一个图像。中间布局将包含三行文本
我需要两侧布局具有固定宽度,中间布局具有取决于设备分辨率的宽度。
我的代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/lytVoterNumber"
android:layout_width="75dp"
android:layout_height="match_parent"
android:background="@android:color/holo_red_dark"
android:layout_alignParentLeft="true">
<TextView
android:id="@+id/lblVoterNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="1999"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
/>
</RelativeLayout>
<LinearLayout
android:id="@+id/lytVoterData"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/lytVoterNumber"
android:layout_toRightOf="@+id/lytVoterNumber">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Text Text Text"
android:id="@+id/lblVoterLastName" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Text Text Text"
android:id="@+id/lblVoterName" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Text Text Text"
android:id="@+id/lblDni" />
</LinearLayout>
<RelativeLayout
android:layout_width="100dp"
android:layout_height="match_parent"
android:background="@android:color/holo_blue_dark"
android:id="@+id/lytIcono"
android:layout_alignParentRight="true"
android:minHeight="30dp"
android:minWidth="30dp"
android:nestedScrollingEnabled="false">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:src="@drawable/flecha"/>
</RelativeLayout>
</RelativeLayout>
检查这个
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="10" >
这是一个 LinearLayout
orientation
水平 并且 weight sum
为 10 现在你所要做的就是将10拆分为3,并使两侧Views
的10 剩下的将是中间人的比例,所以例如,如果你想要一个 TextView
作为这个 linearLayout
的 child 给 TextView
一个width
的0dp和一个weight
的1,同理另一右View
,同理weight
同样width
然后剩下8/10,所以屏幕尺寸的8/10给你中间View
所以你的整体看起来像这样
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="10" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/textView1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="8"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
明白了吗,先生?
我需要使列表视图的一行如下: 该行由三列组成,左边必须包含一个布局,中间有背景颜色和文本,右边是相同的,但有一个图像。中间布局将包含三行文本 我需要两侧布局具有固定宽度,中间布局具有取决于设备分辨率的宽度。
我的代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/lytVoterNumber"
android:layout_width="75dp"
android:layout_height="match_parent"
android:background="@android:color/holo_red_dark"
android:layout_alignParentLeft="true">
<TextView
android:id="@+id/lblVoterNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="1999"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
/>
</RelativeLayout>
<LinearLayout
android:id="@+id/lytVoterData"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/lytVoterNumber"
android:layout_toRightOf="@+id/lytVoterNumber">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Text Text Text"
android:id="@+id/lblVoterLastName" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Text Text Text"
android:id="@+id/lblVoterName" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Text Text Text"
android:id="@+id/lblDni" />
</LinearLayout>
<RelativeLayout
android:layout_width="100dp"
android:layout_height="match_parent"
android:background="@android:color/holo_blue_dark"
android:id="@+id/lytIcono"
android:layout_alignParentRight="true"
android:minHeight="30dp"
android:minWidth="30dp"
android:nestedScrollingEnabled="false">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:src="@drawable/flecha"/>
</RelativeLayout>
</RelativeLayout>
检查这个
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="10" >
这是一个 LinearLayout
orientation
水平 并且 weight sum
为 10 现在你所要做的就是将10拆分为3,并使两侧Views
的10 剩下的将是中间人的比例,所以例如,如果你想要一个 TextView
作为这个 linearLayout
的 child 给 TextView
一个width
的0dp和一个weight
的1,同理另一右View
,同理weight
同样width
然后剩下8/10,所以屏幕尺寸的8/10给你中间View
所以你的整体看起来像这样
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="10" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/textView1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="8"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
明白了吗,先生?