android - 安卓用户界面的问题

标签 android android-layout

在我的应用程序中,我在顶部有一个应用程序栏,在底部有一个标签栏。这两个是固定的。在它们之间我放置了一个 ViewFipper。在 View 翻转器中,我有 7 个 TextView 、一个 ImageView 和一个 3 个图像按钮。

现在我的问题是我想在所有设备的应用程序栏和标签栏之间的空间内显示所有这些内容。当我在 QVGA 中使用 2.7 检查布局时,最后的按钮隐藏在选项卡栏后面。而在 HVGA(ADP2) 的 3.2 中,最后两个图像按钮和选项卡栏之间有更多的空间。我希望 View 翻转器中的内容正好位于中间空间,我的布局中不应该有任何 ScrollView 。如何获得这个....

按照我的布局设计id

<?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>

最佳答案

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

其次,android:id="@+id/RLL"仅用于垂直定位项目。因此请考虑改用 LinearLayout。

总的来说,我认为您的布局使用了太多容器。我创建了另一个布局(并用颜色替换了可绘制对象,因为我没有可绘制对象),您可以使用它来获得灵感来创建更简单、更灵活的布局。正如 Siva K 评论的那样,您可以对中心的元素(在 LinearLayout 中)使用 android:layout_weight="1"来均匀地间隔它们...

下面是一个例子(只有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>

希望这对你有用。

关于android - 安卓用户界面的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6827398/

相关文章:

java - Android:将服务传递给处理程序

java - Android:代码重构建议

android - 如何使用 ListView BELOW LinearLayout

android - 查看其父级高度和宽度的一半

android - 如何实现双短按和长按的Button?

java - 通过参数从自定义ArrayList中删除重复项

android - fatal error : linux/compiler-gcc6. h:没有这样的文件或目录#include gcc_header(__GNUC__) ^

android - 进程已死亡

android - toast 消息未显示在 ListView 中

android - 左右对齐