android:引力奇怪的行为

时间:2013-10-22 19:15:39

标签: java android

我是android的新手并编写了示例代码

<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:padding="5dp"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" 
    android:orientation="horizontal"
    >

    <TextView
        android:text="sample1"
        android:id="@+id/textView1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:textStyle="bold"
        android:layout_weight="4"


        />

    <TextView
        android:text="sample2"
        android:id="@+id/textView2"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:background="#F90"
        android:textColor="#F09"
        android:layout_weight="5"
        android:gravity="center"

         />

    <TextView
        android:text="sample3"
        android:id="@+id/textView3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:textColor="#F09"
        android:layout_weight="3"
         />

    <Button
        android:text="Press"
        android:id="@+id/button1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:textColor="#F09"
        android:layout_weight="4"
         />

</LinearLayout>

在textView2 id中,我更改了layout_width以填充父级,以便可以测试android:gravity属性,但是当我将其设置为某个值时,如center,bottom或top,所有其他视图的行为方式也相同?

2 个答案:

答案 0 :(得分:0)

试试这个: 1.在主布局上设置Layout_gravity 2.然后为每个子组件设置重力

检查此代码(仅包含重力属性):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_gravity="center"
    >

    <TextView
        android:text="sample1"
        android:id="@+id/textView1"
        android:gravity="left"    
        />

    <TextView
        android:text="sample2"
        android:id="@+id/textView2"
        android:gravity="right"

         />

     ...

</LinearLayout>

答案 1 :(得分:0)

当你使用重力时,它就像真正的引力一样,另一个行星插入太阳系,事物会变得不同。如果你有2个重力1项,它们都是相同的重力,它们都占用同一个房间。如果另一个项目进入同一系统,它取决于它与已经发生的事情的严重程度的比较。匹配父级扩展以满足外部。换行内容缩小包装窗口小部件。我希望这能以一种非技术性的方式解释它。