我无法在框架布局中得到正确的定位,我不知道为什么会如此。 我需要将exit_layout(代码片段末尾的LinearLayout)粘贴到屏幕的左上角。
XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/exit_layout"
android:gravity="top|left">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/exit_button_mode"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:background="@drawable/ic_exit_icon"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tv_beck_to_main"
android:textStyle="bold"
android:layout_marginLeft="6dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/modes"
android:gravity="center_vertical|center_horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tv_choose_mode"
android:textSize="30sp"
android:layout_marginLeft="10dp"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button_beginner_mode"
android:background="@drawable/beginner_button"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button_advanced_mode"
android:background="@drawable/advanced_button"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tv_mode_beginner"
android:textStyle="bold"
android:layout_marginLeft="17dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tv_mode_advanced"
android:textStyle="bold"
android:layout_marginLeft="31dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button_expert_mode"
android:background="@drawable/expert_button"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button_custom_mode"
android:background="@drawable/custom_button"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tv_mode_expert"
android:textStyle="bold"
android:layout_marginLeft="24dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tv_mode_custom"
android:textStyle="bold"
android:layout_marginLeft="48dp"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
屏幕截图:
答案 0 :(得分:2)
更改第一个线性布局的高度和宽度以匹配父级:
<script>
var numberOfFaces = 5;
var theLeftSide = document.getElementById("leftSide");
function getRandom(x, y) {
return Math.floor(Math.random() * (y - x)) + x + 'px';
};
function generateFaces() {
for (var i=0; i<numberOfFaces; i++) {
var faces = document.createElement("img");
faces.src = "smile.png";
faces.style.top = getRandom(0, 400);
faces.style.left = getRandom(0, 400);
leftSide.appendChild(faces);
};
};
</script>
您可能需要调整此布局中其他视图的边距,以将它们放置在所需位置。
此外,此处似乎不需要框架布局,只需使用线性布局即可实现所需的结果。
<强>更新强>
当问题布局发生变化时,请修改如下:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical"
android:id="@+id/modes">
结果:
答案 1 :(得分:0)
确保图像顶部没有巨大空间。 还可以尝试将此行添加到ImageButton:
android:adjustViewBounds="true"
如果仍然失败,请尝试使用ImageView而不是ImageButton:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/exit_button_mode"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:adjustViewBounds="true"
android:src="@drawable/ic_exit_icon"/>
答案 2 :(得分:0)
你的XML工作得很好,因为它在屏幕的左上角显示你的exit_layout。我认为问题在于你的资产。查找它们或可能导致XML显示此类视图的任何边距