【发布时间】:2015-09-28 15:44:27
【问题描述】:
我正在编写一个 Android 游戏。在关卡选择活动的布局文件中,我想像这样布局关卡的按钮(它们实际上是ImageViews):
x x x
x x x
每个级别按钮都有一个TextView,在其下方以该级别的名称作为文本(我们将这两个视图一起称为“级别选择”)。我使用了很多LinearLayouts 来做到这一点。以下是关卡选择的代码:
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
android:layout_weight="1">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/angles"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/angles_level"
android:textSize="@dimen/level_text_size"/>
</LinearLayout>
如您所见,两个视图的高度和宽度都是wrap_content。但是当我查看设计器时,文本视图没有显示出来。当我在组件树中选择文本视图时,它显示了文本视图的位置:
附:图片没有显示所有六个级别,因为我还没有制作它们。
如您所见,文本视图位于底部!当我选择ImageView时,它表明它正在占用其父级的所有空间!
我不知道为什么会这样,我的图像肯定是一个正方形!你能解释一下为什么会发生这种情况,我该如何解决?
如果您需要我的整个布局代码,请随时在 cmets 中告诉我。
【问题讨论】:
-
您需要使用RelativeLayout 而不是LinearLayout。 LinearLayout 不允许 2 个或更多对象占用相同的空间。如果你想让这种情况发生,你需要使用RelativeLayout。
-
线性布局?为什么不相对布局它为您提供更灵活的选择
-
使用RelativeLayout,将ImageView的顶部对齐到TextView的顶部,你会看到两个视图占据了相同的空间。
-
您可以做一件事来检查您的文本区域是否存在于视图中,只需在文本视图中添加背景颜色并检查是否可见?
-
使用包含行和列的表格布局
标签: android android-layout imageview android-xml