2

我正在尝试构建一个 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>

问题出在名为“joystickRight”的 ImageView 中。我希望它被绑定到屏幕的右侧,但取而代之的是 - frameLayout 和 linearLayout 被划分在下部屏幕中,而 imageView 保持在 frameLayout 的中心。为什么??

4

4 回答 4

2

因为 FrameLayout 的高度和宽度都设置为 wrap_content。因此它在 FrameLayout 内对齐,该 FrameLayout 仅与图像视图一样宽。

做这个FrameLayout android:layout_width="fill_parent"

于 2012-06-17T20:00:36.987 回答
2

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

    <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>
于 2013-02-03T22:53:22.023 回答
1

为什么不使用 aRelativeLayout而不是,FrameLayout然后为您的 joystickRight 使用选项android:layout_alignParentRight="true"

于 2012-06-17T19:55:19.907 回答
0

您应该使用 `android:layout_gravity="right" 并且视图将在父级中向右对齐。

或者您可以按照 Phobos 的建议进行操作,并将视图宽度设置为“match_parent”,然后android:gravity按照您的预期工作。

于 2012-06-17T21:17:33.107 回答