android LinearLayout剩余空间的问题。
巴扎黑
巴扎黑 2017-04-17 17:24:20
0
4
631

在LinearLayout中,使用

android:layout_weight="1"
android:layout_height="0dp"

这种写法是否可以将控件的高度设置为余下的所有空间?
为什么这段代码用在ListView和RecyclerView可以完美占据剩余空间,而在TextView中却不可以呢?
求教!
代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:weightSum="1">

    <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <View
        android:layout_width="match_parent"
        android:layout_height="@dimen/pider"
        android:background="@color/pide" />

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:id="@+id/app_notify_content_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <TextView
                android:id="@+id/app_alert_tip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="@dimen/common_item_padding"
                android:layout_marginEnd="@dimen/common_item_padding"
                android:layout_marginTop="26dp"
                android:layout_marginBottom="7.3dp"
                android:text="@string/app_notify_tips"
                android:textColor="@color/black40"
                android:textSize="11.3sp" />

            <View
                android:layout_width="match_parent"
                android:layout_height="@dimen/pider"
                android:layout_marginLeft="@dimen/common_item_padding"
                android:layout_marginRight="@dimen/common_item_padding"
                android:background="@color/pide" />

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="51dp">

                <TextView
                    android:id="@+id/app_switch_title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15.3dp"
                    android:layout_alignParentLeft="true"
                    android:layout_centerVertical="true"
                    android:layout_marginLeft="23.3dp"
                    android:text="@string/enable_app_alert"
                    android:textColor="@color/black70"
                    android:textSize="14.7sp" />


                <Switch
                    android:id="@+id/app_notification_alert_switch"
                    android:layout_width="40dp"
                    android:layout_height="21dp"
                    android:layout_alignParentRight="true"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="23.3dp"
                    android:visibility="visible"
                    style="@style/switchStyle"/>

            </RelativeLayout>

            <View
                android:layout_width="match_parent"
                android:layout_height="@dimen/pider"
                android:layout_marginLeft="@dimen/common_item_padding"
                android:layout_marginRight="@dimen/common_item_padding"
                android:background="@color/pide" />

            <FrameLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">

                    <RelativeLayout
                        android:layout_width="match_parent"
                        android:layout_height="51dp">

                        <TextView
                            android:id="@+id/app_notifi_awake_title"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="15.3dp"
                            android:layout_alignParentLeft="true"
                            android:layout_marginLeft="23.3dp"
                            android:text="仅在熄屏时通知"
                            android:textColor="@color/black70"
                            android:textSize="14.7sp" />

                        <Switch
                            android:id="@+id/app_notifi_awake_switch"
                            android:layout_width="40dp"
                            android:layout_height="21dp"
                            android:layout_alignParentRight="true"
                            android:layout_centerVertical="true"
                            android:layout_marginRight="23.3dp"
                            style="@style/switchStyle" />

                    </RelativeLayout>

                    <View
                        android:layout_width="match_parent"
                        android:layout_height="@dimen/pider"
                        android:layout_marginLeft="@dimen/common_item_padding"
                        android:layout_marginRight="@dimen/common_item_padding"
                        android:background="@color/pide" />


                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="@dimen/common_item_padding"
                        android:layout_marginTop="26dp"
                        android:gravity="center_vertical"
                        android:text="@string/selected_alert_apps"
                        android:textColor="@color/black40"
                        android:textSize="11.3sp" />

                    <View
                        android:layout_width="match_parent"
                        android:layout_height="@dimen/pider"
                        android:layout_marginLeft="@dimen/common_item_padding"
                        android:layout_marginRight="@dimen/common_item_padding"
                        android:layout_marginTop="7.3dp"
                        android:background="@color/pide" />

                     <TextView
                        android:id="@+id/list_tip"
                        android:layout_width="match_parent"
                        android:layout_height="0dp"
                         android:layout_weight="1"
                        android:gravity="center"
                        android:layout_gravity="center"
                        android:layout_marginTop="-15dp"
                        android:text="afasdfsdvsdfbsdfgbsdfhsghnsdfgsdfgasdgasdfgshnsgh"
                        android:textSize="14.7sp" />
                    
                    <FrameLayout
                        android:layout_width="match_parent"
                        android:layout_height="@dimen/chart_bottom_bar_height"
                        android:orientation="vertical">

                        <View
                            android:layout_width="match_parent"
                            android:layout_height="@dimen/pider"
                            android:background="@color/pide" />

                        <TextView
                            android:id="@+id/add_notification_app_btn"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center"
                            android:drawablePadding="4.7dp"
                            android:gravity="center"
                            android:drawableTop="@drawable/app_notify_edit_button_press"
                            android:layout_marginTop="2dp"
                            android:text="@string/edit_app"
                            android:textColor="@color/black40"
                            android:textSize="9.3sp" />
                    </FrameLayout>

                </LinearLayout>

                <View
                    android:id="@+id/mask_view1"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_gravity="bottom"
                    android:clickable="true"
                    android:background="#77f7f7f7"
                    android:visibility="gone"/>

            </FrameLayout>


        </LinearLayout>

        <View
            android:id="@+id/mask_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="bottom"
            android:clickable="true"
            android:background="#77f7f7f7"
            android:visibility="gone"/>

    </FrameLayout>


</LinearLayout>
巴扎黑
巴扎黑

reply all(4)
刘奇

It’s also possible in textview. Is your textview font too small and it’s displayed at the top?

阿神

Post the entire layout file of your textview

刘奇

Post all your layout files

Ty80

LinearLayout has a direction,

`android:layout_weight="1"
android:layout_height="0dp"`

It only occupies the remaining space in vertical layout. If LinearLayout is horizontal, it will not take effect
This way

`android:layout_weight="1"
    android:layout_width="0dp"`
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template