我有一个RelativeLayout
父母,ImageButton
里面有 s,用 , 等排列layout_below
。layout_alignRight
这给了我预期的布局。
.
我希望能够折叠其中一些按钮,以便后面的按钮“向上”移动一个空格。如果我用 隐藏一个或多个按钮的可见性gone
,那么整个事情就会变得混乱,因为它们是相对于彼此布置的。我不能求助于GridView
,因为我必须能够在 API 7+ 上运行。
所以基本上,我正在寻找类似 CSS 浮动的东西。这可以通过其他布局实现RelativeLayout
还是其他布局更好?
这是布局(简化):
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="?theme_background" >
<RelativeLayout
android:id="@+id/headerLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dip"
android:background="?theme_header_background">
<ImageButton
android:id="@+id/imgBtnAbout"
android:layout_width="30dip"
android:layout_height="30dip"
android:background="@drawable/ic_action_about"
android:layout_alignParentLeft="true"
android:scaleType="fitXY"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/header"
android:text="App Name"
android:textSize="24sp"
android:textStyle="bold"
android:textColor="?theme_header_text"
android:layout_centerInParent="true" />
<ImageButton
android:id="@+id/imgBtnSetting"
android:layout_width="30dip"
android:layout_height="30dip"
android:background="@drawable/ic_action_settings"
android:layout_alignParentRight="true"/>
</RelativeLayout>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:orientation="vertical"
android:background="?theme_background"
android:layout_below="@+id/headerLayout">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:weightSum="1.0"
tools:context=".MainActivity">
<ImageButton
android:layout_width="fill_parent"
android:layout_height="100dp"
android:id="@+id/imBtn1"
android:scaleType="centerCrop"
android:background="#222"
android:layout_margin="5dp" />
<ImageButton
android:layout_width="fill_parent"
android:layout_height="100dp"
android:id="@+id/imBtn2"
android:layout_below="@+id/imBtn1"
android:scaleType="centerCrop"
android:background="#222"
android:layout_margin="5dp" />
<ImageButton
android:layout_width="fill_parent"
android:layout_height="50dp"
android:id="@+id/imBtn3"
android:layout_below="@+id/imBtn2"
android:scaleType="centerCrop"
android:background="@null"
android:layout_margin="5dp" />
<View android:id="@+id/fakeView1"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_centerInParent="true"
android:layout_below="@+id/imBtnAd" />
<ImageButton
android:layout_width="fill_parent"
android:layout_height="100dp"
android:id="@+id/imBtn4"
android:layout_alignRight="@+id/fakeView1"
android:layout_alignTop="@+id/fakeView1"
android:scaleType="centerCrop"
android:adjustViewBounds="true"
android:background="#222"
android:layout_margin="5dp"/>
<ImageButton
android:layout_width="fill_parent"
android:layout_height="100dp"
android:id="@+id/imBtn5"
android:scaleType="centerCrop"
android:adjustViewBounds="true"
android:background="#222"
android:layout_alignLeft="@+id/fakeView1"
android:layout_alignTop="@+id/fakeView1"
android:layout_margin="5dp"/>
<View android:id="@+id/fakeView2"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_centerInParent="true"
android:layout_below="@+id/imBtnBiz" />
<ImageButton
android:layout_width="fill_parent"
android:layout_height="100dp"
android:id="@+id/imBtn6"
android:scaleType="centerCrop"
android:adjustViewBounds="true"
android:background="#222"
android:layout_alignRight="@+id/fakeView2"
android:layout_alignTop="@+id/fakeView2"
android:layout_alignParentLeft="true"
android:layout_margin="5dp"/>
<ImageButton
android:layout_width="fill_parent"
android:layout_height="100dp"
android:id="@+id/imBtn7"
android:scaleType="centerCrop"
android:adjustViewBounds="true"
android:background="#222"
android:layout_alignLeft="@+id/fakeView2"
android:layout_alignTop="@+id/fakeView2"
android:layout_margin="5dp"/>
<View android:id="@+id/fakeView3"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_centerInParent="true"
android:layout_below="@+id/imBtnAuto" />
<ImageButton
android:layout_width="fill_parent"
android:layout_height="100dp"
android:id="@+id/imBtn8"
android:scaleType="centerCrop"
android:adjustViewBounds="true"
android:background="#222"
android:layout_alignRight="@+id/fakeView3"
android:layout_alignTop="@+id/fakeView3"
android:layout_margin="5dp"/>
<ImageButton
android:layout_width="fill_parent"
android:layout_height="100dp"
android:id="@+id/imBtn9"
android:scaleType="centerCrop"
android:adjustViewBounds="true"
android:background="#222"
android:layout_alignLeft="@+id/fakeView3"
android:layout_alignTop="@+id/fakeView3"
android:layout_margin="5dp"/>
<View android:id="@+id/fakeView4"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_centerInParent="true"
android:layout_below="@+id/imBtnHumor" />
<ImageButton
android:layout_width="fill_parent"
android:layout_height="100dp"
android:id="@+id/imBtn10"
android:scaleType="centerCrop"
android:adjustViewBounds="true"
android:background="#222"
android:layout_alignRight="@+id/fakeView4"
android:layout_alignTop="@+id/fakeView4"
android:layout_margin="5dp"/>
</RelativeLayout>
</ScrollView>
</RelativeLayout>