TextView未显示在RadioGroup上方的技术求助
嘿,我来帮你排查这个RadioGroup上方TextView不显示的问题!
结合你使用的CoordinatorLayout特性,再加上你描述的“仅能看到横向RadioButton”的现象,大概率是布局参数或容器嵌套的问题,给你几个实用的排查和解决思路:
先检查TextView的基础属性是否正确
别小看基础设置!如果TextView的android:layout_height被误设为0dp或match_parent,或者忘记设置android:text内容,都会直接导致它“隐身”。确保你的TextView代码类似这样:<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="这里是要显示的文本内容"/>用常规布局容器包裹TextView和RadioGroup
CoordinatorLayout是专门处理滚动联动、悬浮控件的容器,不是常规的线性布局容器。直接把TextView和RadioGroup作为它的直接子View,很容易出现布局重叠或层级覆盖问题。建议用LinearLayout(垂直方向)或者RelativeLayout把两个控件包起来,示例代码如下:<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <!-- 这里是你的TextView --> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="我是RadioGroup上方的文本"/> <!-- 这里是你的RadioGroup --> <RadioGroup android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="选项1"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="选项2"/> </RadioGroup> </LinearLayout> </android.support.design.widget.CoordinatorLayout>检查RadioGroup是否抢占了全部空间
如果RadioGroup的android:layout_height设为match_parent,它会占满CoordinatorLayout的整个高度,直接把上方的TextView挤出去。一定要确保RadioGroup的layout_height是wrap_content,只占用自身所需的高度。临时排查是否被其他控件覆盖
你可以暂时把RadioGroup的代码注释掉,看看TextView能不能正常显示。如果能显示,说明是RadioGroup的布局参数或层级导致了覆盖,再针对性调整即可。
按这些步骤排查,基本就能解决问题啦!
内容的提问来源于stack exchange,提问作者John

