簡體   English   中英

水平LinearLayout中的2個視圖

[英]2 Views in a horizontal LinearLayout

我有這個觀點-> 在此處輸入圖片說明

視圖基本上是這樣設置的

LinearLayout -orientation horizontal - Height (wrap)
    LinearLayout -orientation vertical - Height (wrap) - weight .65
        TextView
        RecyclerView
    LinearLayout - orientation vertical - Height (matchparent) - weight .35
        TextView
        TextView
        TextView

在大多數情況下,第一個LinearLayout(左一個)將確定高度的大小,因為RecyclerView通常具有多個條目。 但是對於圖像第一行,此邏輯不起作用。 如果我將LinearLayout設置為右邊作為環繞,則當左邊的那個較大時,灰色背景周圍會出現白色。 實現第二布局的最佳方法是始終與其父級保持相同的高度,如果父級太小,則父級會對其進行調整。

這是請求的完整xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_marginBottom="4dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <FrameLayout
        android:background="?attr/selectableItemBackground"
        android:layout_width="match_parent" android:layout_height="wrap_content">
        <ProgressBar android:id="@+id/progressBar" android:layout_width="wrap_content" android:layout_height="match_parent"/>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:baselineAligned="false"
            android:orientation="horizontal">

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight=".65"
                android:orientation="vertical"
                android:padding="@dimen/activity_horizontal_margin">

                <TextView
                    android:id="@+id/tv_organization"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textAppearance="@style/TextAppearance.AppCompat.Medium"
                    android:textStyle="bold"
                    tools:text="Duke Hospital"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/availablehours"
                    android:textAppearance="@android:style/TextAppearance.Small"/>

                <TextView
                    android:id="@+id/rv_available_hours"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:clickable="false"
                    android:focusable="false"
                    android:padding="0dp"
                    android:paddingBottom="4dp"
                    android:textAppearance="@android:style/TextAppearance.Small"/>
            </LinearLayout>

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight=".35"
                android:background="@color/offWhite"
                android:gravity="center"
                android:orientation="vertical"
                android:paddingEnd="@dimen/activity_horizontal_margin"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingStart="@dimen/activity_horizontal_margin">

                <TextView
                    android:id="@+id/tv_notavailable"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:textAppearance="@style/TextAppearance.AppCompat.Subhead"
                    android:textColor="@color/darkerGreyColor"
                    android:visibility="gone"/>

                <TextView
                    android:id="@+id/tv_duration"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:textAppearance="@style/TextAppearance.AppCompat.Display1"
                    android:textStyle="bold"
                    tools:text="30"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" android:textAllCaps="true"
                    android:layout_gravity="center_horizontal"
                    android:text="@string/abbrev_min"/>

                <TextView
                    android:id="@+id/tv_labelDuration"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="@string/estimatedwaittime"
                    android:textAppearance="@style/TextAppearance.AppCompat.Caption"/>
            </LinearLayout>

        </LinearLayout>
    </FrameLayout>
</android.support.v7.widget.CardView>

您可以設置的minHeight

LinearLayout -orientation vertical - Height (wrap) - weight .65

這樣右側的文本就不會被剪切

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM