我将尝试简化避免长代码段的问题:我想在布局中做类似的事情



该结构应该很容易,例如:

 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"

08-06 07:40