Android UI gravity =“right”不起作用

时间:2012-06-17 19:47:06

标签: android xml android-layout user-interface

我正在尝试构建UI屏幕。 这是main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="bottom"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="0.33"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/kartoMap"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:layout_gravity="left"
        android:src="@drawable/ic_launcher" />

    <VideoView
        android:id="@+id/robotVideo"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="right"
        android:layout_weight="1" />
  </LinearLayout>

  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="0.66"
    android:orientation="horizontal" >


    <LinearLayout
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="0.2"
        android:orientation="vertical" >

        <ToggleButton
            android:id="@+id/stepsBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:layout_weight="1"
            android:text="Steps"
            android:textOff="STEPS"
            android:textOn="STEPS" />

        <Button
            android:id="@+id/ArmsBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Arms HOLDER" />

    </LinearLayout>

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >



        <ImageView
            android:id="@+id/joystickRight"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:src="@drawable/joystick" />

        <ImageView
            android:id="@+id/innerCircle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/inner_circle" />

    </FrameLayout>
    </LinearLayout>
 </LinearLayout>

问题出在ImageView中,名为“joystickRight”。 我希望它被绑在屏幕的右侧,而是 - frameLayout和linearLayout在下部屏幕中划分,imageView停留在frameLayout的中心。为什么?

4 个答案:

答案 0 :(得分:2)

因为FrameLayout的高度和宽度都设置为wrap_content。所以它在FrameLayout内部对齐,它只与imageview一样宽。

执行此操作FrameLayout android:layout_width="fill_parent"

答案 1 :(得分:2)

尝试在想要看到左边的元素和你想要看到的元素之间的水平LinearLayout中添加空View,例如:

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

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <View
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="1"
            />                

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </LinearLayout>

答案 2 :(得分:0)

为什么不使用RelativeLayout代替FrameLayout,然后使用操纵杆权利使用android:layout_alignParentRight="true"选项

答案 3 :(得分:0)

您应该使用`android:layout_gravity =“right”,视图将在父级内右侧对齐。

或者你可以像Phobos建议的那样做,并使视图宽度为“match_parent”,然后android:gravity将按预期工作。