Относительная компоновка испортила, насколько зафиксирована ее позиция - PullRequest
0 голосов
/ 25 апреля 2019

Привет, друзья! Я создаю относительный макет, в котором есть текст и кнопка контроллера мультимедиа. Когда я запускаю песню, она испортила мой макет. Скажите, пожалуйста, как фиксировано его положение? Код и изображения моего макета. Помогите исправить это. Не знаю, как это исправить. чтобы исправить относительную позицию макета, я создаю mp3-плеер, с которым я сталкиваюсь, пожалуйста, помогите мне

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mediacontroller"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimary"
    android:layout_gravity="bottom"
    android:padding="4dp">

    <TextView
        android:id="@+id/song_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_marginStart="24dp"
        android:layout_marginEnd="10dp"
        android:layout_toStartOf="@+id/buttonBackward"
        android:ellipsize="end"
        android:maxLines="1"
        android:padding="2dp"
        android:text="Song Name - [details]"
        android:textColor="@android:color/white"
        android:textSize="12sp"
        android:textStyle="bold"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="24dp"
        android:layout_marginRight="10dp"
        android:layout_toLeftOf="@+id/buttonBackward" />

    <TextView
        android:id="@+id/song_artist"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/song_title"
        android:layout_alignParentStart="true"
        android:layout_marginStart="24dp"
        android:layout_marginEnd="10dp"
        android:layout_toStartOf="@+id/buttonBackward"
        android:padding="2dp"
        android:text="Singer Name"
        android:textColor="@android:color/white"
        android:textSize="12sp"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="24dp"
        android:layout_marginRight="10dp"
        android:layout_toLeftOf="@+id/buttonBackward" />

    <ImageView
        android:id="@+id/buttonForward"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_alignParentEnd="true"
        android:layout_centerVertical="true"
        android:layout_marginEnd="8dp"
        android:gravity="center"
  android:src="@drawable/ic_skip_next_black_24dp"
        android:textColor="@android:color/white"
        android:layout_alignParentRight="true"
        android:layout_marginRight="8dp" />

    <ImageView
        android:id="@+id/play_button_main"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_centerVertical="true"
        android:layout_marginEnd="8dp"
        android:layout_toStartOf="@id/buttonForward"
      android:src="@drawable/play_button"
        android:visibility="visible"
        android:gravity="center"

        android:textColor="@android:color/white"
        android:layout_marginRight="8dp"
        android:layout_toLeftOf="@id/buttonForward" />
    <ImageView
        android:id="@+id/pausebtn"
        android:layout_width="40dp"
        android:visibility="gone"
        android:layout_height="40dp"
        android:layout_centerVertical="true"
        android:layout_marginEnd="8dp"
        android:layout_toStartOf="@id/buttonForward"
        android:src="@drawable/pause_button"
        android:gravity="center"
        android:textColor="@android:color/white"
        android:layout_marginRight="8dp"
        android:layout_toLeftOf="@id/buttonForward" />


    <ImageView
        android:id="@+id/buttonBackward"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_centerVertical="true"
        android:layout_marginEnd="8dp"
        android:layout_toStartOf="@id/play_button_main"
   android:src="@drawable/ic_prev"
        android:gravity="center"
        android:text="B"
        android:textColor="@android:color/white"
        android:layout_marginRight="8dp"
        android:layout_toLeftOf="@id/pausebtn" />

</RelativeLayout>

when app launch it look fine

and when i play song the layout messed up kindly check now

Ответы [ 2 ]

1 голос
/ 25 апреля 2019

Лучшее решение - изменить видимость кнопки воспроизведения на android:visibility="invisible", когда эта кнопка нажата, или установить кнопки воспроизведения и паузы в зависимости от положения других видов, а не наоборот (как сейчас), когда buttonBackward в зависимости от положения play_button_main и pausebtn.

1 голос
/ 25 апреля 2019

Мне кажется немного сложным тот факт, что вы устанавливаете одну кнопку как пропавшую, а другую как видимую, особенно учитывая ограничения ограничений и тот факт, что другие кнопки также связаны с ними.

Последняя строкаButtonBackward, кажется, проблема.Вместо gone используйте invisible для кнопок воспроизведения и паузы.

В идеале, если вы настаиваете на gone, я бы использовал оболочку (например, FrameLayout), в которой две кнопкибудет существовать, и все пространственные ограничения будут связаны с оболочкой, а не с самими кнопками.

...