атрибут силы тяжести в Android xml не работает

#android #xml #gravity #android-relativelayout

#Android #xml #гравитация #android-relativelayout

Вопрос:

Я только начал программировать на Android. Я записывал xml RelativeLayout и обнаружил, что gravity этот атрибут не работает. Каждый элемент в макете перекрывает друг друга. Я знаю, что могут быть лучшие способы определения местоположения, но мне любопытно узнать, что я делаю неправильно? Пожалуйста, помогите мне

         <?xml version="1.0" encoding="utf-8"?>
        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >
            <TextView 
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:text="@string/message"
                 android:gravity="start"
            />

           <Button  
              android:id="@ id/btnclose"
              android:textColor="#ffffff"
              android:background="#780956"
              android:textSize="18sp"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:onClick="close"
              android:text="close"
              android:gravity="bottom"
        />
    <Button  
        android:id="@ id/btnclick"
        android:textColor="#ffffff"
        android:background="#123456"
        android:textSize="18sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="close"
        android:text="click"
        android:gravity="center"
        />
</RelativeLayout>
  

Ответ №1:

не просто использовать gravity

существует два типа gravity, layout-gravity

один влияет на все элементы, а другой — нет

попробуйте оба из них..

Ответ №2:

Поскольку вы используете RelativeLayout, правильный способ позиционирования представлений — использовать следующие атрибуты:

  1. android:centerInParent
  2. android:layout_toLeftOf
  3. android:layout_toRightOf
  4. android:layoutBelow

Подробнее о размещении просмотров читайте здесь.

Ответ №3:

Поскольку вы используете RelativeLayout, задайте свойства таким образом:

     <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="message" />

    <Button
        android:id="@ id/btnclose"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="#780956"
        android:onClick="close"
        android:text="close"
        android:textColor="#ffffff"
        android:textSize="18sp" />

    <Button
        android:id="@ id/btnclick"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#123456"
        android:layout_centerInParent="true"
        android:onClick="close"
        android:text="click"
        android:textColor="#ffffff"
        android:textSize="18sp" />


</RelativeLayout>