复杂的android布局(重叠,左/右对齐,居中对齐)

时间:2013-04-23 06:01:24

标签: android android-layout

我必须在Android设备上创建以下布局:

Layout

要求如下: 占据整个屏幕的第一个布局(fill_parent); 第二个(在屏幕的底部)覆盖第一个并具有以下格式:

  • 3列;
  • 占据整个屏幕宽度;
  • 箭头左右对齐,文本区域根据屏幕宽度调整大小;

我尝试了很多东西,但由于我是Android新手,我还没有成功。

这是我到目前为止所做的:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:weightSum="100"
    android:id="@+id/RootView">
    <ImageView
        android:src="@android:drawable/ic_menu_gallery"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:scaleType="fitXY"
        android:id="@+id/mapImageView" />
    <LinearLayout
        android:id="@+id/bottomArea"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_alignParentBottom="true">
        <LinearLayout
            android:id="@+id/adsArea"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal"
            android:layout_alignParentBottom="true">
            <ImageButton
                android:src="@drawable/leftArrow"
                android:id="@+id/btnPrev"
                android:layout_alignParentRight="true"
                android:layout_marginLeft="0dip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <LinearLayout
                android:orientation="vertical"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_gravity="center">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Title" />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="This is some summary text" />
            </LinearLayout>
            <ImageButton
                android:src="@drawable/rightArrow"
                android:layout_alignParentRight="true"
                android:layout_marginRight="0dip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/btnNext" />
        </LinearLayout>
    </LinearLayout>
</RelativeLayout>

但文本似乎没有居中对齐,也未调整为屏幕宽度:

enter image description here

有人有线索吗?

感谢。

2 个答案:

答案 0 :(得分:0)

请找到以下代码。另外,不要将多个viewgroup用于简单的布局解决方案。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RootView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <ImageView
        android:id="@+id/mapImageView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src="@android:drawable/ic_menu_gallery" />

    <RelativeLayout
        android:id="@+id/adsArea"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" >

        <ImageButton
            android:id="@+id/btnPrev"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:src="@drawable/leftArrow" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:orientation="vertical" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Title" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="This is some summary text" />
        </LinearLayout>

        <ImageButton
            android:id="@+id/btnNext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:src="@drawable/rightArrow" />
    </RelativeLayout>

</RelativeLayout>

答案 1 :(得分:0)

将此代码用于所需的布局 ...

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<LinearLayout
    android:id="@+id/linear1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/linear2" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/ic_launcher" />
</LinearLayout>

<RelativeLayout
    android:id="@+id/linear2"
    android:layout_width="match_parent"
    android:layout_height="70dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true" >

    <ImageButton
        android:id="@+id/leftButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:src="@drawable/ic_launcher" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_toLeftOf="@+id/rightButton1"
        android:layout_toRightOf="@+id/leftButton1"
        android:gravity="center"
        android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Title" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="This is some summary text" />

    </LinearLayout>

    <ImageButton
        android:id="@+id/rightButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:src="@drawable/ic_launcher" />
</RelativeLayout>