相对布局搞砸了如何固定其位置

问题描述 投票:0回答:2

你好朋友我创建相对布局,其中有文本和媒体控制器按钮当我开始歌曲它搞砸了我的布局请告诉我如何修复它的位置这里是我的布局的代码和图片请帮助修复它我不知道修复这个如何修复相对布局位置我正在创建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

android xml android-layout android-relativelayout
2个回答
1
投票

最佳解决方案是在单击此按钮时将播放按钮的可见性更改为android:visibility="invisible",或者根据其他视图位置设置播放和暂停按钮,当buttonBackward基于play_button_mainpausebtn的位置时,没有相反(如现在)。


1
投票

我觉得有点棘手的事实是你设置了一个按钮而另一个按钮可见,特别是考虑到约束限制以及其他按钮也与它们相关的事实。

buttonBackward的最后一行似乎是个问题。而不是gone,使用invisible播放和暂停按钮。

理想情况下,如果你坚持使用gone,那么我会使用一个包装器(f.i.一个FrameLayout),其中两个按钮将存在,所有空间约束都与包装器有关,而不是按钮本身。

© www.soinside.com 2019 - 2024. All rights reserved.