微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 使用layout_gravity =“bottom”放置在LinearLayout的底部

我想在LinearLayout的底部放置一个布局,但我似乎无法让它工作.我知道我可以使用RelativeLayout来做到这一点,但是我应该能够使用LinearLayout,不应该吗?

编辑:其实这比我想象的更混乱.以下布局简化.实际上,我在3.0之前的设备上使用了兼容性层的片段.

我使用层次查看器来检查发生了什么,并发现一个android.support.v4.app.NoSaveStateFrameLayout被添加到我的布局中,并且该布局的layout_height设置为wrap_content.这似乎是导致我的问题,但我还没有想出如何解决它.

具体来说,为什么这不工作? layout_gravity不应该放在底部吗?

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

        ... stuff here ...

        <LinearLayout 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:orientation="horizontal">

            ... more stuff here ...

     </LinearLayout>
</LinearLayout>

将layout_height更改为fill_parent或设置layout_weight的BTW似乎也不起作用.我只是想更好地了解发生了什么,因为显然我错过了一些重要的事情.谢谢.

解决方法

首先很好的问题.

在这样的情况下,Android的行为我们可以说奇怪.

如果您选择了您的父线性布局的方向水平,那么您可以通过设置其layoug_gravity = bottom来将其子组件设置在底部.假设您在该水平线性布局中添加了2个文本视图,而第二个textview的layout_gravity是底部,那么它将设置为底部,但它的工作原理就像在其他列的底部设置为第一个文本视图.注意:当它的父线性布局是水平的,但你看不到它的结果时,可以设置textview的layout_gravity =“left”或“right”.

相反,如果您选择了父线性布局的垂直方向,则可以使用layout_gravity将其子组件设置为左右.但是第二个textview将显示在你可以说下一行的左或右重力,你设置.注意,当它的线性布局是垂直的但你看不到它的结果时,可以设置textview的layout_gravity =“top”或“bottom”.

尝试制作样例xml设计,如上所述,以便您得到更好的主意.

奇怪但真实!尝试了解这个行为.

原文地址:https://www.jb51.cc/android/310729.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐