android LinearLayout剩余空间的问题。

【字号: 日期:2022-12-14浏览:15作者:雯心

问题描述

在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'> <FrameLayoutandroid: android:layout_width='match_parent'android:layout_height='wrap_content'/> <Viewandroid:layout_width='match_parent'android:layout_height='@dimen/pider'android:background='@color/pide' /> <FrameLayoutandroid:layout_width='match_parent'android:layout_height='wrap_content'><LinearLayout android: android:layout_width='match_parent' android:layout_height='match_parent' android:orientation='vertical'> <TextViewandroid: 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' /> <Viewandroid: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' /> <RelativeLayoutandroid:layout_width='match_parent'android:layout_height='51dp'><TextView android: 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: android:layout_width='40dp' android:layout_height='21dp' android:layout_alignParentRight='true' android:layout_centerVertical='true' android:layout_marginRight='23.3dp' android:visibility='visible' /> </RelativeLayout> <Viewandroid: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' /> <FrameLayoutandroid:layout_width='match_parent'android:layout_height='wrap_content'><LinearLayout android:layout_width='match_parent' android:layout_height='wrap_content' android:orientation='vertical'> <RelativeLayoutandroid:layout_width='match_parent'android:layout_height='51dp'><TextView android: 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: android:layout_width='40dp' android:layout_height='21dp' android:layout_alignParentRight='true' android:layout_centerVertical='true' android:layout_marginRight='23.3dp' /> </RelativeLayout> <Viewandroid: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' /> <TextViewandroid: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' /> <Viewandroid: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' /> <TextViewandroid: 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' /><FrameLayoutandroid: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: 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: 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: 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>

问题解答

回答1:

textview中也是可以的,是不是你的textview字体太小,显示在上方了

回答2:

贴一下你textview的整个布局文件

回答3:

你将你的布局文件全部贴出来

回答4:

LinearLayout是有方向的,

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

仅仅在垂直布局时占据剩余的空间,假如LinearLayout是横向的,那就不生效了这样

`android:layout_weight='1' android:layout_width='0dp'`

相关文章: