RelativeLayout занимает больше места, чем необходимо

Я работаю над базовым звуковым представлением для приложения для Android (xamarin.android), я хочу добиться следующего результата:

Но вместо этого я получаю этот ужасный результат (игнорируйте другие аномалии, сосредоточьтесь на макете):

Нижний relativeLayout (тот, который удерживает кнопки), кажется, не получает больше места, чем действительно нужно, когда я установил верхний RelativeLayout (держатель изображения) на match_parent, нижний RelativeLayout полностью исчез, даже если его максимум установлен на wrap_content.

Вот макет моего представления, что я делаю не так?

<?xml version = "1.0" encoding = "utf-8"?>
<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:tools = "http://schemas.android.com/tools"
xmlns:local = "http://schemas.android.com/apk/res-auto"
android:fitsSystemWindows = "true"
android:id = "@+id/top_parent"
android:layout_width = "match_parent"
android:layout_height = "match_parent">
<include
    layout = "@layout/Toolbar"
    android:id = "@+id/toolbar_content" />
<RelativeLayout
    android:layout_width = "match_parent"
    android:layout_height = "wrap_content"
    android:background = "@color/white"
    android:layout_below = "@id/toolbar_content"
    android:id = "@+id/gridLayout1">
    <RelativeLayout
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:background = "@color/black"
        android:id = "@+id/cover_layout"
        android:layout_marginBottom = "0.0dp">
        <ImageView
            android:layout_width = "500dp"
            android:layout_height = "400dp"
            android:id = "@+id/imageview_cover"

            android:background = "@color/gray"
            android:layout_centerHorizontal = "true"
            android:layout_centerInParent = "true"
            android:layout_centerVertical = "true" />
        <LinearLayout
            android:orientation = "vertical"
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:id = "@+id/linearLayout1"
            android:layout_alignParentRight = "true"
            android:layout_alignParentLeft = "true"
            android:layout_alignParentTop = "true">
            <TextView
                android:id = "@+id/textview_title"
                android:gravity = "left"
                android:textColor = "@color/white"
                android:textStyle = "bold"
                android:text = "Audio Book Title"
                android:textSize = "@dimen/text_very_huge"
                android:layout_width = "match_parent"
                android:layout_height = "wrap_content"
                android:singleLine = "true" />
            <TextView
                android:id = "@+id/textview_author"
                android:gravity = "left"
                android:textColor = "@color/colorAccent"
                android:text = "Author"
                android:textSize = "@dimen/text_small"
                android:layout_width = "match_parent"
                android:layout_height = "wrap_content"
                android:singleLine = "true" />
        </LinearLayout>
    </RelativeLayout>
    <RelativeLayout
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:layout_below = "@id/cover_layout"
        android:id = "@+id/relativeLayout2"
        android:layout_alignParentBottom = "true"
        android:layout_alignParentRight = "true"
        android:layout_alignParentLeft = "true"
        android:paddingBottom = "8dp"
        android:paddingTop = "8dp"
        android:background = "@color/white"
        android:layout_marginTop = "0.0dp">
        <RelativeLayout
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:id = "@+id/relativeLayout3"
            android:layout_alignParentRight = "true"
            android:layout_alignParentLeft = "true"
            android:layout_marginTop = "@dimen/element_margin_tiny"
            android:layout_marginBottom = "@dimen/element_margin_tiny">
            <TextView
                android:text = "Position"
                android:layout_width = "wrap_content"
                android:layout_height = "wrap_content"
                android:id = "@+id/textview_position"
                android:gravity = "center"
                android:layout_marginLeft = "@dimen/element_margin_large"
                android:textColor = "@color/black"
                android:layout_centerVertical = "true" />
            <SeekBar
                android:layout_width = "fill_parent"
                android:layout_height = "wrap_content"
                android:layout_toRightOf = "@+id/textview_position"
                android:id = "@+id/player_seekbar"
                android:layout_toLeftOf = "@+id/textview_duration"
                android:clickable = "true"
                style = "@style/GreenSeekBar"
                android:layout_centerVertical = "true" />
            <TextView
                android:text = "Duration"
                android:layout_width = "wrap_content"
                android:layout_height = "wrap_content"
                android:id = "@+id/textview_duration"
                android:layout_alignParentRight = "true"
                android:layout_alignBottom = "@+id/seekBar1"
                android:layout_alignTop = "@+id/seekBar1"
                android:gravity = "center"
                android:layout_marginRight = "@dimen/element_margin_large"
                android:textColor = "@color/black"
                android:layout_centerVertical = "true" />
        </RelativeLayout>
        <LinearLayout
            android:layout_width = "match_parent"
            android:id = "@+id/relativeLayout5"
            android:layout_below = "@id/relativeLayout3"
            android:layout_height = "wrap_content"
            android:layout_alignParentBottom = "true">
            <ToggleButton
                android:src = "@drawable/toggle_sound"
                android:id = "@+id/btnSound"                  
                android:layout_width = "30dp"
                android:layout_height = "30dp"
                android:textOff = " "
                android:textOn = " "
                android:layout_weight = "2"
                android:scaleType = "center"
                android:paddingLeft = "@dimen/element_margin_tiny" />
            <ImageButton
                android:layout_width = "40dp"
                android:layout_height = "40dp"
                android:id = "@+id/btnPrevious"
                android:background = "@null"
                android:src = "@drawable/button_previous"
                android:scaleType = "center"
                android:layout_toRightOf = "@+id/btnSound"
                android:layout_weight = "2" />
            <ToggleButton
                android:layout_width = "50dp"
                android:layout_height = "50dp"
                android:id = "@+id/btnPlayPause"
                android:src = "@drawable/togglebutton_playpause"
                android:layout_centerVertical = "true"
                android:scaleType = "center"
                android:textOff = " "
                android:textOn = " "
                android:layout_toRightOf = "@+id/btnPrevious"
                android:layout_toLeftOf = "@+id/btnNext"
                android:layout_weight = "2" />
            <ImageButton
                android:layout_width = "40dp"
                android:layout_height = "40dp"
                android:id = "@+id/btnNext"
                android:background = "@null"
                android:src = "@drawable/button_next"
                android:scaleType = "center"
                android:layout_centerVertical = "true"
                android:layout_toLeftOf = "@+id/btnRepeat"
                android:layout_weight = "2" />
            <ToggleButton
                android:src = "@drawable/toggle_playlist"
                android:id = "@+id/btnRepeat"
                android:layout_width = "30dp"
                android:layout_height = "30dp"
                android:layout_centerVertical = "true"
                android:textOff = " "
                android:textOn = " "                  
                android:scaleType = "center"
                android:layout_weight = "2" />
        </LinearLayout>
    </RelativeLayout>
</RelativeLayout>

1
0
78
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вам нужно уменьшить размер вашего imageView. А также вам нужно изменить ваш основной макет на LinearLayout. Попробуйте решение ниже, и оно сработает для вас.

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

<RelativeLayout
    android:id = "@+id/cover_layout"
    android:layout_width = "match_parent"
    android:layout_height = "wrap_content"
    android:layout_above = "@+id/relativeLayout2"
    android:layout_alignParentTop = "true"
    android:layout_marginBottom = "0.0dp" >


    <ImageView
        android:id = "@+id/imageview_cover"
        android:layout_width = "250dp"
        android:layout_height = "250dp"
        android:layout_centerHorizontal = "true"
        android:layout_centerInParent = "true"
        android:layout_centerVertical = "true"
        android:layout_marginBottom = "10dp"
        android:layout_marginTop = "10dp"
        android:background = "@color/gray" />

    <LinearLayout
        android:id = "@+id/linearLayout1"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:layout_alignParentLeft = "true"
        android:layout_alignParentRight = "true"
        android:layout_alignParentTop = "true"
        android:orientation = "vertical">

        <TextView
            android:id = "@+id/textview_title"
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:gravity = "left"
            android:singleLine = "true"
            android:text = "Audio Book Title"
            android:textColor = "@color/white"
            android:textSize = "16sp"
            android:textStyle = "bold" />

        <TextView
            android:id = "@+id/textview_author"
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:gravity = "left"
            android:singleLine = "true"
            android:text = "Author"
            android:textColor = "@color/colorAccent"
            android:textSize = "12sp" />
    </LinearLayout>
</RelativeLayout>

<RelativeLayout
    android:id = "@+id/relativeLayout2"
    android:layout_width = "match_parent"
    android:layout_height = "80dp"
    android:gravity = "center"
    android:layout_alignParentBottom = "true">

    <RelativeLayout
        android:id = "@+id/relativeLayout3"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_above = "@+id/relativeLayout5"
        android:layout_alignParentLeft = "true"
        android:layout_alignParentRight = "true"
        android:layout_marginBottom = "@dimen/element_margin_tiny"
        android:layout_marginTop = "@dimen/element_margin_tiny">

        <TextView
            android:id = "@+id/textview_position"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:layout_centerVertical = "true"
            android:layout_marginLeft = "@dimen/element_margin_large"
            android:layout_marginLeft = "@dimen/element_margin_large"
            android:gravity = "center"
            android:text = "Position"
            android:textColor = "@color/black" />

        <SeekBar
            android:id = "@+id/player_seekbar"
            style = "@style/GreenSeekBar"
            android:layout_width = "fill_parent"
            android:layout_height = "wrap_content"
            android:layout_toLeftOf = "@+id/textview_duration"
            android:layout_toRightOf = "@+id/textview_position"
            android:clickable = "true" />

        <TextView
            android:id = "@+id/textview_duration"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:layout_alignParentRight = "true"
            android:layout_centerVertical = "true"
            android:layout_marginRight = "@dimen/element_margin_large"
            android:gravity = "center"
            android:text = "Duration"
            android:textColor = "@color/black" />
    </RelativeLayout>

    <LinearLayout
        android:id = "@+id/relativeLayout5"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:layout_alignParentBottom = "true">

        <ToggleButton
            android:id = "@+id/btnSound"
            android:layout_width = "30dp"
            android:layout_height = "30dp"
            android:layout_weight = "2"
            android:paddingLeft = "@dimen/element_margin_tiny"
            android:scaleType = "center"
            android:src = "@drawable/toggle_sound"
            android:textOff = " "
            android:textOn = " " />

        <ImageButton
            android:id = "@+id/btnPrevious"
            android:layout_width = "40dp"
            android:layout_height = "40dp"
            android:layout_weight = "2"
            android:background = "@null"
            android:scaleType = "center"
            android:src = "@drawable/button_previous" />

        <ToggleButton
            android:id = "@+id/btnPlayPause"
            android:layout_width = "50dp"
            android:layout_height = "50dp"
            android:layout_weight = "2"
            android:scaleType = "center"
            android:src = "@drawable/togglebutton_playpause"
            android:textOff = " "
            android:textOn = " " />

        <ImageButton
            android:id = "@+id/btnNext"
            android:layout_width = "40dp"
            android:layout_height = "40dp"
            android:layout_centerVertical = "true"
            android:layout_toLeftOf = "@+id/btnRepeat"
            android:layout_weight = "2"
            android:background = "@null"
            android:scaleType = "center"
            android:src = "@drawable/button_next" />

        <ToggleButton
            android:id = "@+id/btnRepeat"
            android:layout_width = "30dp"
            android:layout_height = "30dp"
            android:layout_centerVertical = "true"
            android:layout_weight = "2"
            android:scaleType = "center"
            android:src = "@drawable/toggle_playlist"
            android:textOff = " "
            android:textOn = " " />
    </LinearLayout>
</RelativeLayout>

@Joseph, без проблем ... :) Можете ли вы сказать мне, на каком разрешении / устройстве вы это тестируете.

Umair 23.04.2018 13:00

Другие вопросы по теме