0

我一直在努力让我的相对布局设置按照我想要的方式进行。我想要一个EditText在左边,一个TextView在中间,一个Button在右边,所有那些在 a上的ListView都是我能得到的最接近的我已经得到了......

这是我正在使用的xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <EditText
        android:id="@+id/new_bookmark_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@+id/new_bookmark_clock"
        android:ems="10"
        android:inputType="text" />

    <TextView
        android:id="@+id/new_bookmark_clock"
        android:layout_width="12sp"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/btn_add_new_bookmark"
        android:text="@string/xx_xx_xx" />

    <Button
        android:id="@+id/btn_add_new_bookmark"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="@string/add" />

     <ListView
         android:id="@+id/bookmark_list"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:layout_below="@+id/new_bookmark_name" />


</RelativeLayout>

谁能帮我吗?

4

7 回答 7

2

你可以通过LinearLayout更好的实现:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

    <EditText
        android:id="@+id/new_bookmark_name"
        android:layout_width="match_parent"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@+id/new_bookmark_clock"
        android:ems="10"
        android:inputType="text" />

    <TextView
        android:id="@+id/new_bookmark_clock"
        android:layout_width="match_parent"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/btn_add_new_bookmark"
        android:text="@string/xx_xx_xx" />

    <Button
        android:id="@+id/btn_add_new_bookmark"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="match_parent"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="@string/add" />

</LinearLayout>
于 2013-09-17T05:16:22.647 回答
1

您提供固定宽度的Textview问题会产生问题,我只是又添加了一个Relative Layout which achieve your goal, have a look below code

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >


    <RelativeLayout 
        android:id="@+id/layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">



    <EditText
        android:id="@+id/new_bookmark_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:ems="10"
        android:inputType="text" />

    <TextView
        android:id="@+id/new_bookmark_clock"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerInParent="true"
        android:layout_toRightOf="@+id/new_bookmark_name"
        android:gravity="center"
        android:text="xx_xx_xx" />

    <Button
        android:id="@+id/btn_add_new_bookmark"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_centerInParent=""
        android:text="add" />

    </RelativeLayout>

     <ListView
         android:id="@+id/bookmark_list"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:layout_below="@+id/layout" />


</RelativeLayout>
于 2013-09-17T05:19:22.627 回答
1

试试这个:

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/new_bookmark_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:inputType="text" />

        <TextView
            android:id="@+id/new_bookmark_clock"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/xx_xx_xx" />

        <Button
            android:id="@+id/btn_add_new_bookmark"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/add" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <ListView
            android:id="@+id/bookmark_list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_below="@+id/new_bookmark_name" />
    </LinearLayout>

</LinearLayout>
于 2013-09-17T05:20:08.087 回答
1

你可以使用这个:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <EditText
        android:id="@+id/new_bookmark_name"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="0.5"
        android:ems="10"
        android:inputType="text" />

    <TextView
        android:id="@+id/new_bookmark_clock"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="0.3"
        android:text="XXXXXXXXX" />

    <Button
        android:id="@+id/btn_add_new_bookmark"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="0.2"
        android:text="Add" />
 </LinearLayout>

 <ListView
    android:id="@+id/bookmark_list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@+id/new_bookmark_name" />

 </LinearLayout>
于 2013-09-17T05:14:43.403 回答
1

尝试这个

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<EditText
    android:id="@+id/new_bookmark_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/new_bookmark_clock"
    android:layout_alignBaseline="@+id/btn_add_new_bookmark"
    android:ems="10"
    android:inputType="text" />

<TextView
    android:id="@+id/new_bookmark_clock"
    android:layout_width="wrap_content"
    android:layout_alignBaseline="@+id/btn_add_new_bookmark"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@+id/btn_add_new_bookmark"
    android:text="@string/xx_xx_xx" />

<Button
    android:id="@+id/btn_add_new_bookmark"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:text="@string/add" />

 <ListView
     android:id="@+id/bookmark_list"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:layout_below="@+id/new_bookmark_name" />


</RelativeLayout>
于 2013-09-17T05:09:50.303 回答
1

尝试以下
更改android:layout_width="12sp"android:layout_width="wrap_content"

    <EditText
        android:id="@+id/new_bookmark_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@+id/new_bookmark_clock"
        android:ems="10"
        android:inputType="text" />

    <TextView
        android:id="@+id/new_bookmark_clock"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/btn_add_new_bookmark"
        android:text="xx_xx_xx" />

    <Button
        android:id="@+id/btn_add_new_bookmark"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="add" />

    <ListView
        android:id="@+id/bookmark_list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/new_bookmark_name" />

</RelativeLayout> 
于 2013-09-17T05:17:09.897 回答
0

你可以这样尝试,这样它可以让你的 top_bar 与列表视图分开。同样对于 textview 永远不要使用 dp 。Sp 用于文本大小。

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent" 
 android:orientation="vertical">

<RelativeLayout  android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:id ="@+id/top_bar">

<EditText
    android:id="@+id/new_bookmark_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/new_bookmark_clock"
    android:ems="10"
    android:inputType="text" />

<TextView
    android:id="@+id/new_bookmark_clock"
    android:layout_width="12sp"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@+id/btn_add_new_bookmark"
    android:text="@string/xx_xx_xx" />

<Button
    android:id="@+id/btn_add_new_bookmark"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:text="@string/add" />

 </RelativeLayout

 <ListView
     android:id="@+id/bookmark_list"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
  />

于 2013-09-17T05:12:12.670 回答