2013-05-20 2 views
2

Мне просто нужно разместить две кнопки (каждая 50dp ширины) параллельно на экране. Первый должен иметь маржу, оставшуюся 10 дп, и размещение это нормально.Android, размещающий кнопку «центр по горизонтали + marginLeft»

Но вторая кнопка должна размещаться на экране, сохраняя 30-сантиметровый марин слева от середины (по горизонтали). Что мне нужно сделать, так это начать с места, где я указал стрелкой.

enter image description here

Мой дизайн XML следующим образом. Не имеет значения использовать LinearLayout или RelativeLayout.

<RelativeLayout 
    android:id="@+id/relativeLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#634785" >   

    <Button 
     android:id="@+id/button1" 
     android:layout_width="50dp" 
     android:layout_height="wrap_content" 
     android:text="B1" 
     android:layout_marginLeft="10dp" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="50dp" 
     android:layout_height="wrap_content" 
     android:text="B2"   
     android:layout_centerHorizontal="true" 
     android:layout_marginLeft="30dp /> 
</RelativeLayout> 
+0

Я совет по настройке ширины кнопок на точное значение. Вместо этого используйте 'wrap_content' и' minWidth'. –

+0

Спасибо deville, я буду помнить об этом, когда я это сделаю. – JibW

ответ

6

Место невидимая вид (0dp широкий и высокий) в центре вашего контейнера и выровнять вторую кнопку относительно него, как вы хотите:

<RelativeLayout 
    android:id="@+id/relativeLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#634785" >   

    <Button 
     android:id="@+id/button1" 
     android:layout_width="50dp" 
     android:layout_height="wrap_content" 
     android:text="B1" 
     android:layout_marginLeft="10dp" 
     /> 

    <Button 
     android:id="@+id/container_center" 
     android:layout_centerInParent="true" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="50dp" 
     android:layout_height="wrap_content" 
     android:text="B2"   
     android:layout_toRightOf="@+id/container_center" 
     android:layout_marginLeft="30dp" 
     /> 

</RelativeLayout> 
1
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/relativeLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#634785" > 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" > 

     <Button 
      android:id="@+id/button1" 
      android:layout_width="50dp" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dp" 
      android:text="B1" /> 

     <RelativeLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" > 

      <Button 
       android:id="@+id/button2" 
       android:layout_width="50dp" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="30dp" 
       android:text="B2" /> 
     </RelativeLayout> 
    </RelativeLayout> 

</RelativeLayout> 
0

Я попытался выше ответы, но любой из вышеперечисленных не работает для моего случая, я хочу поместить кнопку2 над другой кнопкой1, так что, безусловно, button2 должен быть помещен с некоторым дополнением из центра, чтобы сделать его отзывчивым для всех устройств. Но по какой-то причине button2 все еще находится на левой стороне. Вот XML код, который я написал для достижения этой цели, пожалуйста, поправьте меня

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#ffffff"> 
    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="40dp"> 
     <Button 
      android:id="@+id/EnglishButton" 
      android:layout_width="fill_parent" 
      android:layout_height="35dp" 
      android:text=" English" 
      android:textColor="#000000" 
      android:gravity="left|center_vertical" 
      android:background="@drawable/Color_Button_Language" 
      android:layout_marginLeft="20dp" /> 
     <Button 
      android:id="@+id/fakeview" 
      android:layout_centerInParent="true" 
      android:layout_width="0dp" 
      android:layout_height="0dp" /> 
     <Button 
      android:id="@+id/TickButton1" 
      android:layout_toRightOf="@+id/fakeview" 
      android:layout_width="30dp" 
      android:layout_height="30dp" 
      android:background="@drawable/WhiteTick" /> 
    </RelativeLayout> 
    <View 
     android:layout_width="fill_parent" 
     android:layout_height="1dp" 
     android:background="#6D7077" 
     android:layout_marginLeft="20dp" /> 
</LinearLayout> 

Вот результат выше XML, но я хочу, чтобы поставить галочку на правой стороне после заполнения от центра экрана enter image description here

Смежные вопросы