相对布局中布局的正确分配 - android

时间:2017-06-21 10:23:49

标签: android android-layout layout android-linearlayout

嗨我在android xml中分配布局有问题。

主布局为相对布局。整个屏幕被ExoPlayer占用,这三个元素放在播放器上。 在图片 蓝色 线性布局,它应该占屏幕高度的1/3。   绿色 布局(线性)应占屏幕高度的1/9, 红色 < / strong> 线性也应占用屏幕的1/3。 enter image description here

我尝试过使用权重,但不幸的是我的方法不起作用,我收到的警告可能会影响应用程序的性能。

拜托,你能协助我实现这个设计吗?

由于

编辑:

<?xml version="1.0" encoding="utf-8"?>

<data>

    <import type="android.view.View" />

    <import
        alias="position" />

    <variable
        name="vm"/>
</data>

<RelativeLayout
    android:id="@+id/master_layoout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <com.google.android.exoplayer2.ui.SimpleExoPlayerView
        android:id="@+id/player_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:focusable="true"
        android:layoutMode="@{vm.fullScreen}"
        android:player="@{vm.player}"
        app:use_controller="false" />

    <!-- STARTof menu layout-->
    <LinearLayout
        android:layout_alignParentTop="true"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:weightSum="9">
        <View
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="2"/>

    <LinearLayout
        android:id="@+id/menu_layout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/info"
        android:layout_alignParentEnd="true"
        android:background="#000000"
        android:orientation="vertical"
        android:paddingLeft="1dp"
        android:paddingRight="1dp"
        android:paddingTop="1dp"
        android:visibility="@{vm.menuVisibility}"
        android:layout_weight="3">

        <LinearLayout
            android:id="@+id/details"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@{vm.getSelectedCurrentOption == 0 ? @color/selectedMenuItem : @color/unselectedMenuItem }"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_margin="15dp"
                android:src="@drawable/mockup_icon" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginRight="20dp"
                android:fontFamily="sens-serif"
                android:paddingEnd="10dp"
                android:text="DETALJNO"
                android:textColor="#000000" />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/favorites"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="1dp"
            android:layout_marginTop="1dp"
            android:background="@{vm.getSelectedCurrentOption == 1 ? @color/selectedMenuItem : @color/unselectedMenuItem }"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_margin="15dp"
                android:src="@drawable/mockup_icon" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginRight="20dp"
                android:fontFamily="sens-serif"
                android:text="OMILJENI"
                android:textColor="#000000" />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/record"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@{vm.getSelectedCurrentOption == 2 ? @color/selectedMenuItem : @color/unselectedMenuItem }"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_margin="15dp"
                android:src="@drawable/mockup_icon" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginEnd="20dp"
                android:fontFamily="sens-serif"
                android:text="VRATI NA POCETAK"
                android:textColor="#000000" />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/remind_me"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="1dp"
            android:layout_marginTop="1dp"
            android:background="@{vm.getSelectedCurrentOption == 3 ? @color/selectedMenuItem : @color/unselectedMenuItem }"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_margin="15dp"
                android:src="@drawable/mockup_icon" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginEnd="20dp"
                android:fontFamily="sens-serif"
                android:text="SNIMI"
                android:textColor="#000000" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/return_to_begin"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@{vm.getSelectedCurrentOption == 4 ? @color/selectedMenuItem : @color/unselectedMenuItem }"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_margin="15dp"
                android:src="@drawable/mockup_icon" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginEnd="20dp"
                android:fontFamily="sens-serif"
                android:paddingEnd="10dp"
                android:text="PODSETI ME"
                android:textColor="#000000" />

        </LinearLayout>
        <!-- end of menu layout-->

    </LinearLayout>

    <LinearLayout
        android:id="@+id/info"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="vertical"
        android:layout_weight="1">

        <RelativeLayout
            android:id="@+id/media_control_view"
            android:layout_width="match_parent"
            android:layout_height="58dp"
            android:background="#96000000"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:visibility="@{vm.getMediaControlView==true ? View.VISIBLE : View.INVISIBLE}">

            <ImageView
                android:id="@+id/channel_icon"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_alignParentStart="true"
                android:layout_centerVertical="true"
                android:layout_gravity="center_vertical"
                android:src="@{vm.icon}" />

            <TextView
                android:id="@+id/media_title"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_centerVertical="true"
                android:layout_marginTop="12dp"
                android:layout_toEndOf="@+id/channel_icon"
                android:fontFamily="sens-serif"
                android:maxLength="50"
                android:padding="12dp"
                android:text="@{vm.getTitle}"
                android:textColor="#f15a29"
                android:textSize="12sp" />

            <ImageView
                android:id="@+id/play_pause_icon"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_centerVertical="true"
                android:layout_toStartOf="@+id/animate_progress_bar"
                android:src="@drawable/play_icon" />

            <com.daasuu.ahp.AnimateHorizontalProgressBar
                android:id="@+id/animate_progress_bar"
                android:layout_width="300dp"
                android:layout_height="2dp"
                android:layout_centerVertical="true"
                android:layout_gravity="center_vertical"
                android:layout_toStartOf="@+id/remaining_time"
                android:max="@{vm.maxProgress}"
                android:paddingStart="10dp"
                android:progress="@{vm.progress}"
                app:ahp_backgroundColor="#C0C0C0"
                app:ahp_progressColor="#f15a29" />

            <TextView
                android:id="@+id/remaining_time"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_centerVertical="true"
                android:layout_marginEnd="25dp"
                android:layout_marginTop="12dp"
                android:layout_toStartOf="@+id/icon_info"
                android:fontFamily="sens-serif"
                android:padding="12dp"
                android:text="@{vm.times}"
                android:textColor="#D3D3D3" />

            <ImageView
                android:id="@+id/icon_info"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_gravity="center"
                android:layout_toStartOf="@+id/icon_menu"
                android:src="@drawable/icon_info" />

            <ImageView
                android:id="@+id/icon_menu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_centerVertical="true"
                android:layout_gravity="center"
                android:layout_marginEnd="5dp"
                android:layout_marginStart="10dp"
                android:src="@drawable/icon_menu" />

        </RelativeLayout>

        <LinearLayout
            android:id="@+id/additional_info"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:animateLayoutChanges="true"
            android:background="#80000000"
            android:orientation="horizontal"
            android:visibility="@{vm.infoVisibility}"
            android:weightSum="90"
            android:layout_weight="3">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/cover_image" />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="15dp"
                android:layout_marginTop="15dp"
                android:layout_weight="60"
                android:orientation="vertical">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:fontFamily="sens-serif"
                    android:text="The Gardian of the Galaxy Vol.2"
                    android:textColor="@color/primary_orange"
                    android:textSize="25sp" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:fontFamily="sens-serif"
                    android:text="19:00 - 21:00 | 2017 | Science fiction film/Action | 2h 18m\n"
                    android:textColor="@color/epg_event_layout_text" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:fontFamily="sens-serif"
                    android:text="Peter Quill and his fellow Guardians are hired by a power-\nful alien race, the Sovereign, to protect their precious bat-\nteries from invaders. When it is discovered that Rocket\nhas stolen the items they were sent to guard, the Sover-\n"
                    android:textColor="@color/epg_event_layout_text" />
            </LinearLayout>


            <View
                android:layout_width="3dp"
                android:layout_height="match_parent"
                android:layout_marginBottom="15dp"
                android:layout_marginLeft="15dp"
                android:layout_marginRight="15dp"
                android:layout_marginTop="15dp"
                android:background="#FFFFFF" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                android:fontFamily="sens-serif"
                android:text="Rezija:\nMajkl Kejn\n\nGLUMCI:\nChris Pratt, Zoe\nSaldana, Dave Bau-\ntista, Bradley\nCooper, Vin Diesel,\nMichael Rooke\n"
                android:textColor="@color/epg_event_layout_text" />

        </LinearLayout>
    </LinearLayout>
</LinearLayout>
</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

Layout Weight仅适用于LinearLayout

为视图使用权重并对其进行测试。 documentation中给出的示例非常明显。