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

在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>
巴扎黑
巴扎黑

모든 응답(4)
刘奇

텍스트뷰에서도 가능합니다. 텍스트뷰 글꼴이 너무 작아서 상단에 표시되나요?

阿神

텍스트 뷰의 전체 레이아웃 파일 게시

刘奇

모든 레이아웃 파일 게시

Ty80

LinearLayout에는 방향이 있습니다.

으아악

세로 레이아웃에서는 남은 공간만 차지합니다. LinearLayout이 가로이면 적용되지 않습니다.
이렇게 하면

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿