我正在尝试构建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的中心。为什么?
答案 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
将按预期工作。