我将尝试简化避免长代码段的问题:我想在布局中做类似的事情
该结构应该很容易,例如:
LinearLayoutA (vertical)
LinearLayoutB (vertical)
LinearLayoutC (horizontal)
LinearLayoutC' (horizontal)
LinearLayoutB' (vertical)
LinearLayoutC'' (horizontal)
LinearLayoutC''' (horizontal)
All with weight=1
我的问题是定义在LinearLayoutC中放置什么。现在,重点关注LinearLayoutC中的元素:
我的第一个选择是另一个LinearLayout(垂直)问题是,如果图像比LinearLayoutC高,则TextView不可见。
所以我使用了RelativeLayout:
<RelativeLayout
android:id="@+id/RelativeLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Eiffel"
android:textSize="45sp"
android:id="@+id/text"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:gravity="center"
></TextView>
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/eiffel2"
android:id="@+id/image"
android:layout_above="@id/text"
android:layout_centerHorizontal="true"></ImageView>
</RelativeLayout>
很好,它有效!但是不会很长时间=(。(我们从现在开始将其称为RelativeLayout1)。使其位于屏幕(或子布局)的中央。如显示该屏幕所示:
那是因为TextView上的android:layout_alignParentBottom =“ true”。
试图解决这个问题,我使用了RelativeLayout2来包装RelativeLayout1并添加以下代码:
<RelativeLayout2
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<RelativeLayout1
android:layout_centerInParent="true"
.....
></RelativeLayout1>
</RelativeLayout2>
但是即使布局RelativeLayout1仍与图像的底部对齐(并且由于高度为fill_parent而垂直填充所有屏幕,我也不知道为什么会这样以及如何解决它。请您帮忙我吗?我已经尝试了几个小时了
最佳答案
加
在您的ImageView中android:adjustViewBounds="true"