android中关于scrollview内部组件android:layout_height="fill_parent"无效的解决办法 .

遇到ScrollView下组件无法自动扩展到屏幕高度的问题,通过设置ScrollView的fillViewport属性为true成功解决。文章分享了解决过程及解决方案。

今天在调整布局时遇到一个奇怪的问题,在scrollview下加入的组件无论如何也不能自动扩展到屏幕高度,最后对布局文件进行简化,最终得到最简layout配置内容如下:

01.<?xml version="1.0" encoding="utf-8"?>  
02.  
03.<!-- 背景:蓝色 -->  
04.<ScrollView android:layout_width="fill_parent"  android:id="@+id/scrollView1"  
05.      xmlns:android="http://schemas.android.com/apk/res/android"  
06.      android:layout_height="fill_parent" android:background="@color/solid_blue">  
07.  
08.    <!-- 背景:黄色 -->  
09.    <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent"   
10.       android:layout_height="fill_parent" android:background="@color/solid_yellow">  
11.  
12.        <TextView android:text="TextView" android:id="@+id/textView1"    
13.           android:layout_width="wrap_content" android:layout_height="fill_parent"    
14.           android:layout_weight="1">  
15.        </TextView>  
16.  
17.    </LinearLayout>  
18.</ScrollView> 

虽然我的所有组件都设置了android:layout_height="fill_parent",但是结果依然不能扩展到全屏高度,为了看到组件实际大小,我设置了布局组件的背景色,显示效果如下:

很明显,scrollview(蓝色)已经扩展到最大高度了,但是其内部的linearlayout(黄色)却没有扩展.试了很多办法,就是没有办法让linearlaout组件扩大.

最终,在一个国外的网站上,找到了答案,描述如下:

Found the solution myself in the end. The problem was not with theLinearLayout,  but with theScrollView (seems weird, considering the fact that theScrollViewwas expanding, while the LinearLayout wasn't).

The solution was to use android:fillViewport="true" on theScrollView.

原文链接:http://stackoverflow.com/questions/2599837/linearlayout-not-expanding-inside-a-scrollview

果然,需要设置scrollview的fillViewport属性为"true"才能使其子组件可以扩展!

效果:

向大虾们学习了!

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <GridLayout android:layout_width="match_parent" android:layout_height="match_parent" android:columnCount="3" android:rowCount="16"> <TextView android:id="@+id/TCU_id" android:text="设备地址" android:layout_row="0" android:layout_column="0" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:padding="10dp" android:layout_width="0dp"/> <EditText android:id="@+id/TCU_id_1" android:layout_width="0dp" android:layout_row="0" android:layout_rowWeight="1" android:layout_column="1" android:layout_columnWeight="1" android:layout_gravity="fill" android:hint="请输入设备地址" android:padding="10dp" /> <Button android:id="@+id/TCU_id_set" android:layout_width="0dp" android:layout_row="0" android:layout_column="2" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:backgroundTint="#C8142D" android:padding="10dp" android:text="地址设置" /> <TextView android:id="@+id/TCU_type" android:text="TCU类型" android:layout_row="1" android:layout_column="0" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:padding="10dp" android:layout_width="0dp"/> <Spinner android:id="@+id/TCU_type_1" android:hint="请选择" android:layout_row="1" android:layout_column="1" android:layout_columnWeight="1" android:layout_rowWeight="1" android:spinnerMode="dropdown" android:entries="@array/tcu_types" android:layout_gravity="fill" android:padding="10dp" android:layout_width="0dp"/> <Button android:id="@+id/TCU_type_set" android:layout_width="0dp" android:layout_row="1" android:layout_column="2" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:backgroundTint="#C8142D" android:padding="10dp" android:text="类型选择" /> <TextView android:id="@+id/accuracy" android:text="跟踪精度" android:layout_row="3" android:layout_column="0" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:padding="10dp" android:layout_width="0dp"/> <EditText android:id="@+id/accuracy_1" android:hint="请输入跟踪精度" android:layout_row="3" android:layout_column="1" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="fill" android:padding="10dp" android:layout_width="0dp"/> <Button android:id="@+id/accuracy_set" android:layout_width="0dp" android:layout_row="3" android:layout_column="2" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:backgroundTint="#C8142D" android:padding="10dp" android:text="精度设置" /> <TextView android:id="@+id/electricity_over" android:text="过流值" android:layout_row="4" android:layout_column="0" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:padding="10dp" android:layout_width="0dp"/> <EditText android:id="@+id/electricity_over_1" android:hint="请输入过流值" android:layout_row="4" android:layout_column="1" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="fill" android:padding="10dp" android:layout_width="0dp"/> <Button android:id="@+id/electricity_over_set" android:layout_width="0dp" android:layout_row="4" android:layout_column="2" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:backgroundTint="#C8142D" android:padding="10dp" android:text="过流值设置" /> <TextView android:id="@+id/text_1" android:text="天文参数" android:layout_row="5" android:layout_column="0" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:padding="10dp" android:layout_width="0dp"/> <TextView android:id="@+id/longitude" android:text="经度" android:layout_row="6" android:layout_column="0" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:padding="10dp" android:layout_width="0dp"/> <EditText android:id="@+id/longitude_1" android:hint="请输入经度" android:layout_row="6" android:layout_column="1" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="fill" android:padding="10dp" android:layout_width="0dp"/> <TextView android:id="@+id/latitude" android:text="纬度" android:layout_row="7" android:layout_column="0" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:padding="10dp" android:layout_width="0dp"/> <EditText android:id="@+id/latitude_1" android:hint="请输入纬度" android:layout_row="7" android:layout_column="1" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="fill" android:padding="10dp" android:layout_width="0dp"/> <Button android:id="@+id/twcs_set" android:layout_width="0dp" android:layout_row="7" android:layout_column="2" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:backgroundTint="#C8142D" android:padding="10dp" android:text="天文参数设置" /> <TextView android:id="@+id/time" android:text="时间" android:layout_row="8" android:layout_column="0" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:padding="10dp" android:layout_width="0dp"/> <Button android:id="@+id/time_set" android:layout_width="0dp" android:layout_row="8" android:layout_column="2" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:backgroundTint="#C8142D" android:padding="10dp" android:text="时间同步" /> <TextView android:id="@+id/timezone" android:text="时区" android:layout_row="9" android:layout_column="0" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:padding="10dp" android:layout_width="0dp"/> <EditText android:id="@+id/timezone_1" android:hint="请输入时区" android:layout_row="9" android:layout_column="1" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="fill" android:padding="10dp" android:layout_width="0dp"/> <Button android:id="@+id/timezone_set" android:layout_width="0dp" android:layout_row="9" android:layout_column="2" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:backgroundTint="#C8142D" android:padding="10dp" android:text="时区设置" /> <TextView android:id="@+id/text_2" android:text="无线模块参数" android:layout_row="10" android:layout_column="0" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:padding="10dp" android:layout_width="0dp"/> <TextView android:id="@+id/module" android:text="无线模块" android:layout_row="11" android:layout_column="0" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:padding="10dp" android:layout_width="0dp"/> <Spinner android:id="@+id/module_1" android:hint="请选择" android:layout_row="11" android:layout_column="1" android:layout_columnWeight="1" android:layout_rowWeight="1" android:spinnerMode="dropdown" android:entries="@array/tcu_types" android:layout_gravity="fill" android:padding="10dp" android:layout_width="0dp"/> <Button android:id="@+id/module_set" android:layout_width="0dp" android:layout_row="11" android:layout_column="2" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:backgroundTint="#C8142D" android:padding="10dp" android:text="模块选择" /> <TextView android:id="@+id/route" android:text="信道" android:layout_row="12" android:layout_column="0" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:padding="10dp" android:layout_width="0dp"/> <EditText android:id="@+id/routewang_1" android:hint="请输入信道" android:layout_row="12" android:layout_column="1" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="fill" android:padding="10dp" android:layout_width="0dp"/> <TextView android:id="@+id/PINID" android:text="网络ID" android:layout_row="13" android:layout_column="0" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:padding="10dp" android:layout_width="0dp"/> <EditText android:id="@+id/PINID_1" android:hint="请输入网络ID" android:layout_row="13" android:layout_column="1" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="fill" android:padding="10dp" android:layout_width="0dp"/> <TextView android:id="@+id/address" android:text="模块地址" android:layout_row="14" android:layout_column="0" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="center_vertical" android:padding="10dp" android:layout_width="0dp"/> <EditText android:id="@+id/address_1" android:hint="请输入模块地址" android:layout_row="14" android:layout_column="1" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_gravity="fill" android:padding="10dp" android:layout_width="0dp"/> </GridLayout> </FrameLayout>页面只显示一行,不能滑动
12-24
<?xml version="1.0" encoding="utf-8"?> <com.tplink.design.layout.TPImmersiveCoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/parent_control_scaffold_layout" android:layout_width="match_parent" android:layout_height="match_parent" app:isNeedFitsSystemWindows="true"> <include android:id="@+id/parental_control_top_bar" layout="@layout/mp_toolbar_collapsing" /> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <com.tplink.design.card.TPConstraintCardView android:id="@+id/banner_container_fl" style="@style/Widget.TPDesign.CardView.Modal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginBottom="@dimen/tpds_all_dp_16" android:visibility="gone" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <com.tplink.design.tablayout.TPTabLayout android:id="@+id/avira_tab_layout" style="@style/Widget.TPDesign.TabLayout.Transparent" android:layout_width="match_parent" android:layout_height="@dimen/tpds_all_dp_48" android:layout_marginStart="@dimen/tpds_all_dp_16" android:layout_marginEnd="@dimen/tpds_all_dp_16" android:visibility="gone" app:layout_constraintTop_toBottomOf="@id/banner_container_fl" app:tabGravity="fill" app:tabMaxWidth="0dp" app:tabMode="fixed" /> <androidx.viewpager2.widget.ViewPager2 android:id="@+id/avira_viewpager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_marginTop="@dimen/tpds_all_dp_20" android:importantForAccessibility="no" android:focusableInTouchMode="false" android:focusable="false" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/avira_tab_layout" app:layout_goneMarginTop="0dp" /> </androidx.constraintlayout.widget.ConstraintLayout> </com.tplink.design.layout.TPImmersiveCoordinatorLayout> 为什么我的滚动不了
最新发布
12-27
怎么又变成右对齐了?<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".DetailActivity" android:background="@color/tech_cyan_second" android:fillViewport="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="16dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="5dp" android:gravity="center_vertical"> <TextView android:id="@+id/detail_memo_id" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="编号:123456789" android:textColor="#888888" android:textSize="12sp" /> <Button android:id="@+id/btn_share_card" android:layout_width="0dp" android:layout_height="30dp" android:layout_weight="0.3" android:layout_marginEnd="3dp" android:text="卡片" android:background="@drawable/btn_share_bg" android:textColor="@android:color/white" android:drawableStart="@drawable/ic_share" /> <Button android:id="@+id/btn_share_text" android:layout_width="0dp" android:layout_height="30dp" android:layout_weight="0.3" android:layout_marginStart="4dp" android:text="文本" android:background="@drawable/btn_outline_bg" android:textColor="@color/colorPrimaryDark" android:drawableStart="@drawable/ic_share"/> </LinearLayout> <TextView android:id="@+id/detail_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="24sp" android:textColor="#000000" android:textStyle="bold" android:layout_marginBottom="16dp" android:gravity="center"/> <TextView android:id="@+id/detail_location" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="14sp" android:textColor="#777777" android:textStyle="bold" android:layout_marginBottom="16dp" android:gravity="center"/> <TextView android:id="@+id/detail_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:lines="2" android:ellipsize="end" android:textSize="12sp" android:layout_gravity="right"/> <TextView android:id="@+id/detail_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp" android:textColor="#333333" android:layout_marginBottom="16dp" android:textIsSelectable="true" android:lineSpacingExtra="8dp" android:fontFamily="sans-serif-medium" android:letterSpacing="0.03" android:paddingHorizontal="10dp" android:paddingVertical="8dp" android:textAlignment="viewEnd" android:justificationMode="inter_word"/> <Space android:layout_width="match_parent" android:layout_height="160dp" /> <LinearLayout android:id="@+id/imageContainer" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" /> </LinearLayout> </ScrollView>
10-02
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值