Android Studio 0.4.4
您好,
我有以下布局,相对布局和横向视图。
基本上,我有3个EditText和一个Button。我想从屏幕中央显示ListView。并将EditText和Button宽度对齐到ListView的左侧。
我已设法使用dp完成此操作。但我不喜欢使用dp,因为这会影响其他屏幕密度。
我已将ListView设置为android:layout_marginLeft="250dp"
,然后将EditText和按钮设置为android:layout_width="250dp"
如果不使用dp作为宽度,我有什么方法可以做到这一点?这是我目前的xml。
非常感谢任何建议,
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<ListView
android:id="@+id/lvFriends"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:layout_marginLeft="250dp">
</ListView>
<EditText
android:id="@+id/etName"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:hint="Name"
android:textSize="22sp"
android:inputType="text"/>
<EditText
android:id="@+id/etPhone"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:hint="Phone"
android:textSize="22sp"
android:inputType="phone"
android:layout_below="@+id/etName"/>
<EditText
android:id="@+id/etEmail"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:hint="Email"
android:textSize="22sp"
android:inputType="textEmailAddress"
android:layout_below="@+id/etPhone"/>
<Button
android:id="@+id/btnAddFriend"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:text="Add Friend"
android:textSize="22sp"
android:layout_marginTop="8dp"
android:layout_below="@+id/etEmail"/>
</RelativeLayout>
答案 0 :(得分:2)
您可以将layout_center ..与相对布局
一起使用 <ListView
android:id="@+id/lvFriends"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:layout_centerHorizontal="true">
</ListView>
对于编辑文本的宽度,您可以将drawable(所有dpi都不同)作为背景并使用wrap_content或只使用dp值但总是在值/维中
http://developer.android.com/guide/topics/resources/more-resources.html#Dimension
Load dimension value from res/values/dimension.xml from source code
答案 1 :(得分:1)
您可以将android:layout_weight="1"
设置为每个EditText,但此属性应在LinearLayout中使用。您可以在xml中设置android:layout_centerInParent=""
。
答案 2 :(得分:1)
您可以尝试将此代码放在xml文件中。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
android:visibility="gone" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:id="@+id/linear1"
android:orientation="vertical">
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="6"
android:inputType="textPersonName" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="6"
android:inputType="textPersonName" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="6"
android:inputType="textPersonName" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center">
</Button>
</LinearLayout>
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true"
android:layout_toRightOf="@+id/linear1"
>
</ListView>
</RelativeLayout>