我是否必须为标签单独布局?

时间:2015-10-01 16:06:41

标签: android android-layout android-tabs

我在制作应用时遇到问题。这是我的xml布局,它在小屏幕上正常工作但在Tabs上无法正常工作。如何调整布局以使所有屏幕都通用。另外我想知道我已经将文本框高度设置为dps,w.r.t小屏幕(默认为1),但它没有在tab中占用适当的空间。所以我可以调整它吗?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent"
    android:orientation="vertical"
    android:layout_height="fill_parent"

    tools:context=".MainActivity"
    android:weightSum="1"
    android:background="#ffffffff">


    <RelativeLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center_horizontal"
        android:layout_weight="0.55"
        android:weightSum="1"
        android:background="#1E90FF">

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:id="@+id/imageView"
            android:background="@drawable/lock"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="10dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Login"

            android:id="@+id/textView11"
            android:layout_below="@+id/imageView"
            android:layout_centerHorizontal="true"
            android:textColor="#ffffffff"
            android:textSize="20dp" />

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/imageButton8"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:background="@drawable/f_icon"
            android:layout_below="@+id/textView11"
            android:layout_marginTop="60dp" />


    </RelativeLayout>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center_horizontal"
        android:layout_weight="0.45">




        <EditText
            android:layout_width="240dp"
            android:layout_height="40dp"
            android:id="@+id/editText10"
            android:background="@drawable/edittextstyle"
            android:drawableLeft="@drawable/textboxuser"

            android:drawablePadding="2dp"
            android:paddingLeft="5dip"
            android:paddingRight="26dip"
            android:hint="Username"
            android:singleLine="true"

            android:layout_gravity="center_horizontal"
            android:textColor="#ff464646"
            android:textSize="20dp"
            android:layout_marginTop="20dp" />

        <EditText
            android:layout_width="240dp"
            android:layout_height="40dp"
            android:inputType="textPassword"
            android:ems="10"
            android:paddingLeft="10dip"
            android:paddingRight="26dip"
            android:background="@drawable/edittextstyle"
            android:drawableLeft="@drawable/textboxpwd"
            android:layout_margin="10dp"
            android:id="@+id/editText11"
            android:layout_gravity="center_horizontal"
            android:hint="Password"
            android:textSize="20dp" />

        <Button
            android:layout_width="240dp"
            android:layout_height="40dp"
            android:text="Sign In"
            android:background="#1E90FF"
            android:layout_margin="10dp"
            android:id="@+id/button4"
            android:layout_gravity="center_horizontal"
            android:textColor="#ffffffff" />

        <TextView
            android:layout_width="wrap_content"
            android:text="Forgot Password !! Click Here"

            android:id="@+id/textView10"
            android:textColor="#ff424242"
            android:layout_gravity="center_horizontal"
            android:layout_height="wrap_content"
            android:layout_marginBottom="68dp" />

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"

            android:text="Not a member yet? Join Now"
            android:onClick="register"
            android:id="@+id/button5"
            android:textColor="#fffcfffa"

            android:clickable="true"


            android:background="#ff000000" />
    </LinearLayout>
</LinearLayout>

2 个答案:

答案 0 :(得分:1)

如果您可以智能地设计以某种方式在所有屏幕尺寸上或多或少地查看您的布局,那么就可以了。但通常你应该为不同的屏幕尺寸创建不同的布局,比如

res/layout/my_layout.xml              // layout for normal screen size ("default")
res/layout-large/my_layout.xml        // layout for large screen size
res/layout-xlarge/my_layout.xml       // layout for extra-large screen size
res/layout-xlarge-land/my_layout.xml 

对于平板电脑,您可以声明单独的布局,例如

res/layout/main_activity.xml           # For handsets
res/layout-sw600dp/main_activity.xml   # For tablets 

但最重要的是通过android开发者网站。阅读所有细节。您将以更加结构化的方式获得所有信息

https://developer.android.com/guide/practices/screens_support.html

修改

可用于提供特定于大小的资源的配置限定符是small,normal,large和xlarge。例如,超大屏幕的布局应该在layout-xlarge /中。 从Android 3.2(API级别13)开始,不推荐使用上述大小组,您应该使用swdp配置限定符来定义布局资源所需的最小可用宽度。

res/layout-sw600dp/main_activity.xml   # For tablets 

答案 1 :(得分:0)

Android还支持基于大小,屏幕方向和许多其他配置限定符的多个版本的res /值:

res/values/dimens.xml
res/values-large/dimens.xml
res/values-xlarge/dimens.xml
res/values-xlarge-land/dimens.xml

在每个dimens.xml中,您可以放置​​尺寸以便稍后在布局中使用

示例视图:

<EditText
    android:layout_width="@dimen/edit_text_width"
    android:layout_height="@dimen/edit_text_height" />

值/ dimens.xml:

<resources>
    <dimen name="edit_text_width">120dp</dimen>
    <dimen name="edit_text_height">200dp</dimen>
</resources>

值/梦诗-large.xml:

<resources>
    <dimen name="edit_text_width">240dp</dimen>
    <dimen name="edit_text_height">300dp</dimen>
</resources>

通常您需要支持多种屏幕尺寸,因此值得检查