视图上的线性布局layout_gravity无效

时间:2014-05-27 09:59:50

标签: android android-layout android-linearlayout gravity layout-gravity

我正在构建一个我需要进行布局的应用程序。通常我使用相对布局和自定义视图,这使我的工作,但这次,我想使用Liner布局,所以我在XML下面做了这个。我的目标是在父母的内部制作一个儿童线性布局,并使孩子的重力超过"底部"这将保持我的两个底部,一个应该是右对齐,一个应该左对齐。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:gravity="bottom"       
    >       
   <Button            
        android:gravity="left"
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Previous" />
   <Button            
        android:id="@+id/button3"
        android:layout_gravity="right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Next"/>
</LinearLayout>

孩子坐在底部但是两个按钮视图没有正确对齐。我做错了什么,或者这些事情不能通过这种布局实现吗?

5 个答案:

答案 0 :(得分:2)

试试这个布局..希望这会对你有所帮助

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:paddingLeft="5dp"
    android:paddingRight="5dp" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Previous" />

        <Button
            android:id="@+id/button3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Next" />
    </LinearLayout>

</RelativeLayout>

答案 1 :(得分:2)

使用Pure LinearLayout:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:orientation="vertical"
    android:weightSum="1">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"></LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:weightSum="2">

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Previous"
            android:id="@+id/button"
            android:layout_weight="1" />

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Next"
            android:id="@+id/button2"
            android:layout_weight="1" />
    </LinearLayout>

为了解释您需要最大限度地使用weightSum。另外一个不包含任何东西的布局可以包含你的其他小部件,以防万一你需要添加一些TextViews等。这也适用于其他布局将被强制放在整个父LinearLayout的底部。

如果你想在中间的那两个按钮之间留一个空格,你总是可以使用填充。 ;)

答案 2 :(得分:0)

you can do this using Relative layout easily

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:gravity="bottom"       
    >  
      <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >      
   <Button            
        **android:layout_alignParentLeft=true**
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Previous" />
   <Button            
        android:id="@+id/button3"
        **android:layout_alignParentRight=true**
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Next"/>
</RelativeLayout>
</LinearLayout>
</LinearLayout>

答案 3 :(得分:0)

请尝试以下代码。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:orientation="vertical"
android:gravity="bottom" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="bottom"       
    >       
   <Button            
        android:gravity="left"
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Previous" />
   <Button            
        android:id="@+id/button3"
        android:layout_gravity="right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Next"/>
</LinearLayout>

答案 4 :(得分:0)

// Try this way,hope this will help you to solve your problem...

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="bottom"
    android:padding="5dp">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button1"/>
        <View
            android:layout_width="0dp"
            android:layout_height="1dp"
            android:layout_weight="1"/>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button2"/>
    </LinearLayout>
</LinearLayout>