Android UI的问题

时间:2011-07-26 08:42:44

标签: android android-layout

在我的应用程序中,我在顶部有一个应用程序栏,在底部有一个标签栏。这两个是固定的。在它们之间,我放置了一个ViewFipper。在视图鳍状肢内部,我有7个文本视图,一个图像视图和一个3个图像按钮。

现在我的问题是我想在应用程序栏和所有设备中的标签栏之间的空间内显示所有这些内容。当我用QVGA中的2.7检查布局时,最后一个按钮隐藏在标签栏后面。而在HVGA(ADP2)中的3.2中,最后两个图像按钮和标签栏之间有更多的空格。我希望视图翻板中的内容完全位于中间空间,我的布局中不应该有任何滚动视图。如何得到这个......

跟随我的布局设计

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

    <RelativeLayout android:layout_width="fill_parent" android:layout_marginBottom="10dp"
        android:background="@drawable/graybar" android:layout_height="wrap_content"
        android:id="@+id/relativeLayout2">

        <TextView android:text="Detail" android:id="@+id/textView1"
            android:textSize="24sp" android:layout_centerInParent="true"
            android:layout_height="wrap_content" android:layout_width="wrap_content">
        </TextView>
        <TextView android:layout_width="wrap_content" android:text="Share Festival"
            android:gravity="center" android:textStyle="bold"
            android:layout_height="wrap_content" android:id="@+id/DetailShare"
            android:layout_alignParentRight="true" android:background="@drawable/share">
        </TextView>
    </RelativeLayout>


    <ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_below="@+id/relativeLayout2" android:layout_above="@+id/relativeLayout4"
        android:id="@+id/flipper" android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <RelativeLayout android:id="@+id/RLL"
            android:layout_width="fill_parent" android:layout_height="fill_parent">
            <LinearLayout android:orientation="vertical" android:layout_marginBottom="10dp"
                android:layout_width="fill_parent" android:layout_height="wrap_content"
                android:id="@+id/LL" android:gravity="center">
                <ImageView android:layout_height="wrap_content"
                    android:layout_width="wrap_content" android:id="@+id/imageView1"
                    android:src="@drawable/p144" android:layout_alignParentTop="true">
                </ImageView>
            </LinearLayout>
            <RelativeLayout android:layout_width="fill_parent"
                android:layout_below="@+id/LL" android:layout_height="wrap_content"
                android:id="@+id/RL1">
                <ImageButton android:layout_width="wrap_content"
                    android:layout_height="wrap_content" android:id="@+id/detailback"
                    android:layout_alignParentLeft="true" android:background="@drawable/left">
                </ImageButton>
                <TextView android:text="Detail" android:id="@+id/textView1"
                    android:background="@drawable/share" android:textSize="15sp"
                    android:layout_centerInParent="true" android:gravity="center"
                    android:maxLines="2" android:layout_height="wrap_content"
                    android:layout_width="wrap_content">
                </TextView>
                <ImageButton android:layout_width="wrap_content"
                    android:layout_height="wrap_content" android:id="@+id/DetailShare"
                    android:layout_alignParentRight="true" android:background="@drawable/right">
                </ImageButton>
            </RelativeLayout>

            <LinearLayout android:orientation="vertical"
                android:layout_width="fill_parent" android:layout_height="wrap_content"
                android:id="@+id/Lq1" android:layout_below="@+id/RL1">
                <LinearLayout android:orientation="vertical" 
                    android:layout_width="fill_parent" android:layout_height="wrap_content"
                    android:id="@+id/L2">
                    <TextView android:text="date" android:id="@+id/date"
                        android:textSize="18sp" android:layout_marginTop="5dp"
                        android:layout_gravity="center" 
                        android:layout_height="wrap_content" android:layout_width="wrap_content">
                    </TextView>
                </LinearLayout>
                <LinearLayout android:orientation="vertical" 
                    android:layout_width="fill_parent" android:layout_height="wrap_content"
                    android:id="@+id/L2">
                    <TextView android:text="Contact : " android:id="@+id/contact"
                        android:textSize="18sp" android:layout_marginTop="5dp"
                        android:layout_gravity="center" 
                        android:layout_height="wrap_content" android:layout_width="wrap_content">
                    </TextView>
                </LinearLayout>
                <LinearLayout android:orientation="vertical" 
                    android:layout_width="fill_parent" android:layout_height="wrap_content"
                    android:id="@+id/L2">
                    <TextView android:text="mail" android:id="@+id/mail"
                        android:textSize="18sp" android:layout_marginTop="5dp"
                        android:layout_gravity="center" 
                        android:layout_height="wrap_content" android:layout_width="wrap_content">
                    </TextView>
                </LinearLayout>
                <LinearLayout android:orientation="vertical"
                    android:layout_width="fill_parent" android:layout_height="wrap_content"
                    android:id="@+id/L2">
                    <TextView android:text="phone" android:id="@+id/phone"
                        android:textSize="18sp" android:layout_marginTop="5dp"
                        android:layout_gravity="center"
                        android:layout_height="wrap_content" android:layout_width="wrap_content">
                    </TextView>
                </LinearLayout>
                <LinearLayout android:orientation="vertical" 
                    android:layout_width="fill_parent" android:layout_height="wrap_content"
                    android:id="@+id/L2">
                    <TextView android:text="Hollywood" android:id="@+id/address"
                        android:textSize="18sp" android:layout_marginTop="5dp" android:layout_gravity="center" 
                        android:layout_height="wrap_content" android:layout_width="wrap_content">
                    </TextView>
                </LinearLayout>
                <LinearLayout android:orientation="vertical" 
                    android:layout_width="fill_parent" android:layout_height="wrap_content"
                    android:id="@+id/L2">
                    <TextView android:text="DeadLine : closed 2011 festival"
                        android:id="@+id/date" android:textSize="18sp"
                        android:layout_marginTop="5dp" android:layout_gravity="center" android:layout_height="wrap_content"
                        android:layout_width="wrap_content">
                    </TextView>
                </LinearLayout>
                <LinearLayout android:orientation="vertical" 
                    android:layout_width="fill_parent" android:layout_height="wrap_content"
                    android:id="@+id/L2">
                    <TextView android:text="Genre" android:id="@+id/genre"
                        android:textSize="18sp" android:layout_marginTop="5dp"
                        android:layout_gravity="center" 
                        android:layout_height="wrap_content" android:layout_width="wrap_content">
                    </TextView>
                </LinearLayout>

            </LinearLayout>

            <RelativeLayout android:id="@+id/Relativelayoutadd" android:layout_height="wrap_content" android:layout_width="fill_parent"
                  android:layout_below="@+id/Lq1" android:layout_alignBaseline="@+id/flipper">                
            <TextView android:text="Add to IPhone calendar" android:id="@+id/calendar"
                android:textSize="15sp" android:layout_marginBottom="5dp"
                 android:layout_alignParentLeft="true"
                android:layout_height="wrap_content" android:layout_width="wrap_content">
            </TextView>
            <TextView android:text="Add to favorite" android:id="@+id/addtofavorite"
                android:textSize="15sp" android:layout_marginBottom="5dp"
                android:layout_alignParentRight="true"
                android:layout_height="wrap_content" android:layout_width="wrap_content">
            </TextView>        
            </RelativeLayout>

        </RelativeLayout>

    </ViewFlipper>

    <RelativeLayout android:layout_width="fill_parent"
        android:layout_gravity="bottom" android:layout_alignParentBottom="true"
        android:background="@drawable/applicarion_bar" android:layout_height="wrap_content"
        android:id="@+id/relativeLayout4">
        <ImageButton android:layout_width="wrap_content"
            android:layout_marginLeft="5dp" android:layout_height="wrap_content"
            android:id="@+id/detailfestivallist" android:layout_alignParentLeft="true"
            android:background="@drawable/festival_btn">
        </ImageButton>
        <ImageButton android:layout_width="wrap_content"
            android:layout_marginLeft="90dp" android:layout_height="wrap_content"
            android:id="@+id/detailsearch" android:layout_alignParentLeft="true"
            android:background="@drawable/search_btn">
        </ImageButton>
        <TextView android:layout_width="wrap_content" android:text="MAR 20"
            android:textSize="9sp" android:layout_marginLeft="170dp"
            android:layout_height="wrap_content" android:id="@+id/detailcalendar"
            android:layout_alignParentLeft="true" android:background="@drawable/calendar_btn">
        </TextView>
        <ImageButton android:layout_width="wrap_content"
            android:layout_marginRight="5dp" android:layout_height="wrap_content"
            android:id="@+id/detailfavorite" android:layout_alignParentRight="true"
            android:background="@drawable/favorite_btn">
        </ImageButton>
    </RelativeLayout>
</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

首先,你有两个不同的元素叫做android:id =“@ + id / date”。这可能会产生冲突和尴尬的行为。

其次,android:id =“@ + id / RLL”仅用于垂直放置项目。因此,请考虑使用LinearLayout。

一般来说,我认为您的布局使用了太多容器。我创建了另一个布局(并用颜色替换了drawables,因为我没有drawable),你可以用它来创建一个更简单,更灵活的布局。正如Siva K评论的那样,你可以使用android:layout_weight =“1”作为中心元素(在LinearLayout中),使它们均匀分布......

下面是一个示例(只有viewFlipper部分,其余部分未更改)

<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_below="@+id/relativeLayout2" android:layout_above="@+id/relativeLayout4"
    android:id="@+id/flipper" android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <RelativeLayout
        android:id="@+id/RLL"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <!--  HEADER IMAGE -->
        <ImageView android:layout_height="wrap_content"
            android:layout_width="wrap_content" android:id="@+id/imageView1"
            android:src="#ff5500" android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true">
        </ImageView>

        <!-- TOP -->
        <TextView android:text="Detail" android:id="@+id/textView1"
            android:background="#ff0022" android:textSize="15sp"
            android:layout_centerInParent="true" android:gravity="center"
            android:maxLines="2" android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_below="@id/imageView1">
        </TextView>
        <ImageButton android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:id="@+id/detailback"
            android:layout_alignParentLeft="true" android:background="#112233"
            android:layout_alignTop="@id/textView1">
        </ImageButton>
        <ImageButton android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:id="@+id/DetailShare"
            android:layout_alignParentRight="true" android:background="#55ff22"
            android:layout_alignTop="@id/textView1">
        </ImageButton>

        <!--  MIDDLE -->
        <LinearLayout 
            android:id="@+id/ll"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_below="@id/textView1" 
            android:orientation="vertical"
            android:layout_marginBottom="20dp">
            <TextView android:text="date" android:id="@+id/date"
                android:textSize="18sp" android:layout_marginTop="5dp"
                android:layout_gravity="center" 
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content"
                android:layout_centerHorizontal="true" android:layout_weight="1">
             </TextView>
             <TextView android:text="Contact : " android:id="@+id/contact"
                android:textSize="18sp" android:layout_marginTop="5dp"
                android:layout_gravity="center" 
                android:layout_height="wrap_content" android:layout_width="wrap_content"
                android:layout_centerHorizontal="true" android:layout_weight="1">
            </TextView>
            <TextView android:text="mail" android:id="@+id/mail"
                android:textSize="18sp" android:layout_marginTop="5dp"
                android:layout_gravity="center" 
                android:layout_height="wrap_content" android:layout_width="wrap_content"
                android:layout_centerHorizontal="true" android:layout_weight="1">
            </TextView>
            <TextView android:text="phone" android:id="@+id/phone"
                android:textSize="18sp" android:layout_marginTop="5dp"
                android:layout_gravity="center"
                android:layout_height="wrap_content" android:layout_width="wrap_content"
                android:layout_centerHorizontal="true" android:layout_weight="1">
            </TextView>
            <TextView android:text="Hollywood" android:id="@+id/address"
                android:textSize="18sp" android:layout_marginTop="5dp" android:layout_gravity="center" 
                android:layout_height="wrap_content" android:layout_width="wrap_content"
                android:layout_centerHorizontal="true" android:layout_weight="1">
            </TextView>
            <TextView android:text="DeadLine : closed 2011 festival"
                android:id="@+id/date2" android:textSize="18sp"
                android:layout_marginTop="5dp" android:layout_gravity="center" android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:layout_centerHorizontal="true" android:layout_weight="1">
            </TextView>
            <TextView android:text="Genre" android:id="@+id/genre"
                android:textSize="18sp" android:layout_marginTop="5dp"
                android:layout_gravity="center" 
                android:layout_height="wrap_content" android:layout_width="wrap_content"
                android:layout_centerHorizontal="true" android:layout_weight="1">
            </TextView>
        </LinearLayout>

        <!--  BOTTOM -->
        <TextView android:text="Add to IPhone calendar" android:id="@+id/calendar"
            android:textSize="15sp" android:layout_marginBottom="5dp"
            android:layout_alignParentLeft="true"
            android:layout_height="wrap_content" android:layout_width="wrap_content"
            android:layout_alignParentBottom="true">
        </TextView>
        <TextView android:text="Add to favorite" android:id="@+id/addtofavorite"
            android:textSize="15sp" android:layout_marginBottom="5dp"
            android:layout_alignParentRight="true"
            android:layout_height="wrap_content" android:layout_width="wrap_content"
            android:layout_alignParentBottom="true">
        </TextView>
    </RelativeLayout>
</ViewFlipper>

希望这适合你。