Android 线性布局中的子宽度
我有一个Android 线性布局中的子宽度,android,android-linearlayout,android-ui,Android,Android Linearlayout,Android Ui,我有一个线性布局,我用它制作一个框来显示日期: <LinearLayout android:id="@+id/date_layout" android:background="@drawable/bg_frame" android:layout_gravity="center" android:layout_marginRight="3dp" android:layout_rowSpan="3" android:minWidth="65dp"
线性布局
,我用它制作一个框来显示日期:
<LinearLayout android:id="@+id/date_layout"
android:background="@drawable/bg_frame"
android:layout_gravity="center"
android:layout_marginRight="3dp"
android:layout_rowSpan="3"
android:minWidth="65dp"
android:orientation="vertical"
>
<TextView android:id="@+id/date"
android:gravity="center"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:textColor="@android:color/holo_blue_bright"
android:textSize="20sp"
/>
<View
android:background="@android:color/holo_blue_bright"
android:layout_height="1dp"
android:layout_width="match_parent"
/>
<TextView android:id="@+id/day_of_week"
android:gravity="center"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:textColor="@android:color/holo_blue_bright"
/>
</LinearLayout>
它是一个很好的小框(上面的代码中没有视图
):
当我将视图
放在那里时,它会将框一直延伸到屏幕上,我只想在框的宽度上画一条线,而不改变其宽度,为什么它不能像我编码的那样工作?难道android:layout\u width=“match\u parent”不应该简单地匹配包含的线性布局的宽度吗?为什么它适用于两个文本视图
,而不适用于视图
LinearLayout
包含在GridLayout
中
我还发现,如果我将视图
替换为文本视图
,但其他内容保持不变,则它可以按我所希望的方式工作,不会扩展到整个屏幕宽度。为什么文本视图的工作方式与我期望的一样,而视图的工作方式与我期望的不同?您在线性布局上没有布局宽度或布局高度。所以它的宽度和高度是未定义的,可能默认为全屏显示。您需要将其宽度设置为包裹内容。忘记提到LinearLayout
包含在处理其宽度的GridLayout
中。如果我省略了视图
,它工作得很好,只有当我把视图
放进去时,它才会扩展到整个屏幕宽度……啊。我的猜测是,视图有一些奇怪的问题,因为它从来没有真正打算放在一个布局中——它没有数据可以绘制,当你考虑它时,它真的应该是一个抽象类(事实上,我很惊讶它不是)。如果你只是用它来分隔视图,你最好在其中一个元素上使用填充。我只想让它显示一条水平线,而不用担心间距。谢谢你的评论。然后我会使用一个设置为xml可绘制线条的ImageView。使用通用视图确实不是正确的方法。