RelativeLayout占用的空间比需要的多

时间:2018-04-23 09:20:31

标签: android android-layout xamarin.android android-relativelayout

我正在为Android应用程序(xamarin.android)的基本音频视图工作,我想实现以下结果:

但相反,我得到了这个丑陋的结果(忽略其他异常,专注于布局):

当我将顶部RelativeLayout(图片持有者)设置为match_parent底部{{1}时,底部relativeLayout(持有按钮的那个)似乎获得了实际需要的更多空间完全消失,即使它的高位设置为RelativeLayout

这是我的视图布局,我做错了什么?

wrap_content

1 个答案:

答案 0 :(得分: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>