相关疑难解决方法(0)

重力和layout_gravity之间的确切区别是什么

可能重复:
Android - gravity和layout_gravity

我一直在研究android xml的.我习惯于android:layout_gravity="center"在特定位置对齐组件.

现在有一天,当我在像Activity这样Dialog上工作时,我遇到了android:gravity="center".我在那里找到的,gravity用于使其child与特定位置对齐.

我会分享一个例子,

机器人:比重="中心"

<LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    android:orientation="vertical" >
            <EditText
                android:id="@+id/enterNumberEdit"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:hint="Enter No." >

                <requestFocus />
            </EditText>
            </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

它使LinearLayout中心的孩子对齐.

机器人:layout_gravity = "中心"

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:orientation="vertical"
    android:background="@drawable/dialog_background" >
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

它将LinearLayout自身对准中心.

现在我的问题是:

  1. 如果我在这些假设中是正确的,那么是否gravity适用于子组件并且layout_gravity是父组件.
  2. 何时选择gravity结束layout_gravity.

到目前为止,我已经找到了很多关于xml的解释.我想听听更好的解释.如果我错了,请告诉我

xml android gravity layout-gravity

14
推荐指数
1
解决办法
4万
查看次数

使用layout_gravity ="bottom"放置在LinearLayout的底部

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

编辑:实际上这比我想象的更令人困惑.下面的布局是简化的.实际上,我正在使用兼容层在3.0之前的设备上使用片段.

我使用Hierarchy Viewer来检查发生了什么,并发现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>
Run Code Online (Sandbox Code Playgroud)

顺便说一句,将layout_height更改为fill_parent或设置layout_weight似乎也不起作用.我只是想更好地了解发生了什么,因为很明显我错过了一些重要的东西.谢谢.

android android-layout

10
推荐指数
3
解决办法
2万
查看次数

标签 统计

android ×2

android-layout ×1

gravity ×1

layout-gravity ×1

xml ×1