2013-09-17 2 views
0

Я вытаскиваю свои волосы, пытаясь установить мою настройку расположения, как я хочу. Я хочу иметь EditText слева с TextView в середине и Button направо и всех тех, кто по ListView Вот так близко, как я могу получить I have gotten ...Проблема с относительной компоновкой справа

Вот 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> 

Может ли кто-нибудь помочь мне?

+2

' андроид: layout_width = "12SP" '? – RobinHood

+1

Вы хотите, как это? http://postimg.org/image/xrc0nhvrv/ – RobinHood

ответ

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> 
+0

Это отлично работает! БЛАГОДАРЯ! –

+0

@RedCricket добро пожаловать, пожалуйста, примите ответ, если он соответствует вашему вопросу. –

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" 
    /> 

+0

Добавьте несколько пояснений, чтобы понять код! – RobinHood

+0

Хорошо, чтобы достичь того, что дано в приведенном выше изображении, я бы предпочел сохранить вид сверху 3 в отдельном относительном макете, а затем предоставить список. Поскольку я использую линейную компоновку в качестве корневого макета с ориентацией, вертикальный список всегда будет находиться ниже top_bar. Если вы хотите использовать относительный макет в качестве корневого макета, вы можете указать viewview android: layout_below = "@ + id/top_bar" – Ravi

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> 
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> 
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> 
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> 
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> 
Смежные вопросы