为什么LinerLayout布局下使用layout_gravity="center"不能居中

为什么LinerLayout布局下使用layout_gravity="center"不能居中

//不能实现居中
<LinearLayout 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"
    android:orientation="vertical"
    tools:context="${relativePackage}.${activityClass}" >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        <ToggleButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:checked="true"
            android:textOff="@string/wifi_close"
            android:textOn="@string/wifi_open" />
    </LinearLayout>
</LinearLayout>

//只有在父控件的中设置android:gravity="center"属性才能使ToggleButton居中显示

<LinearLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content" 

        android:gravity="center">

        <ToggleButton

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:checked="true"

            android:textOff="@string/wifi_close"

            android:textOn="@string/wifi_open" />

    </LinearLayout>

这是为什么?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

在红框处添加一个android:orientation="vertical"即可。当LinearLayout设置android:orientation="horizontal" 时(默认), 只有垂直方向的top,bottom,center_vertical设置才起作用,水平方向的设置不起作用。

http://img1.sycdn.imooc.com//climg/5bc8250200012db905810283.jpg

irista23 2018-10-18 10:19:55

android:gravity是调整元素本身的内容或元素包含的子元素显示的位置,默认是显示在左侧

android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什么位置。

如果你是想让线性布局下的子元素居中,应该使用android:gravity


  • 提问者 wp_peter #1
    对呀,理论上在ToggleButton中设置android:layout_gravity="center属性 不是说明这个ToggleButton 在父元素LinerLayout中相对居中显示么?为什么实际上没有居中显示呢?
    2018-10-18 14:03:24
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Android从界面到数据存储2018版
  • 参与学习       504    人
  • 提交作业       1003    份
  • 解答问题       1044    个

本专题是专为有Java语言基础想入坑Android开发的同学们准备的。从AndroidUI基础一直到网络,数据存储,一步到位入门Android开发。如果你会Java,那就不要犹豫了~ ~

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师