根据设备调整布局

时间:2013-11-01 02:08:11

标签: android android-layout scrollview

这是我的第一个Android应用程序,对此非常新。我的应用程序在移动设备中使用时,布局未完全显示。我的意思是说不显示最后的按钮。使用ScrollView将解决此问题。但有没有办法根据我使用的设备调整布局?此外,还将欣赏使用ScrollView的示例代码。提前谢谢。

编辑:布局代码(.xml)

<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".Matchdetails" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="15dp"
        android:text="@string/Name" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView2"
        android:layout_alignParentRight="true"
        android:ems="10"
        android:inputType="text" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="@string/Maledet" />

    <Spinner
        android:id="@+id/spin_ras"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_below="@+id/textView2"
        android:layout_toLeftOf="@+id/textView1" />

    <Spinner
        android:id="@+id/spin_nak"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/spin_ras"
        android:layout_below="@+id/spin_ras"
        android:layout_toLeftOf="@+id/textView1" />

    <Spinner
        android:id="@+id/spin_gotra"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/spin_nak"
        android:layout_toRightOf="@+id/textView1" />

    <Spinner
        android:id="@+id/spin_pada"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/spin_nak"
        android:layout_toRightOf="@+id/textView1" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView4"
        android:layout_alignBottom="@+id/textView4"
        android:layout_alignRight="@+id/spin_pada"
        android:ems="10"
        android:inputType="text" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/spin_nak"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="14dp"
        android:text="@string/Femdet" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/spin_nak"
        android:layout_below="@+id/textView3"
        android:layout_marginTop="14dp"
        android:text="@string/Name" />

    <Spinner
        android:id="@+id/spin_fras"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView4"
        android:layout_below="@+id/editText2"
        android:layout_marginTop="14dp"
        android:layout_toLeftOf="@+id/textView1" />

    <Spinner
        android:id="@+id/spin_fnak"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/spin_fras"
        android:layout_below="@+id/spin_fras"
        android:layout_toLeftOf="@+id/textView1" />

    <Spinner
        android:id="@+id/spin_fpada"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/spin_fnak"
        android:layout_toRightOf="@+id/textView1" />

    <Spinner
        android:id="@+id/spin_fgotra"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/spin_fpada"
        android:layout_toRightOf="@+id/textView1" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/spin_fnak"
        android:layout_marginLeft="15dp"
        android:layout_toRightOf="@+id/textView4"
        android:text="@string/Submit" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/button1"
        android:layout_marginLeft="20dp"
        android:layout_toRightOf="@+id/button1"
        android:text="@string/Cancel" />

</RelativeLayout>

3 个答案:

答案 0 :(得分:1)

您可能还想尝试兼容性布局:)

enter image description here

答案 1 :(得分:0)

我修改了您的布局并将其放在滚动视图中。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".Matchdetails" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/textView1"
            android:layout_marginTop="15dp"
            android:text="@string/Name" />

        <EditText
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@id/textView2"
            android:layout_alignParentRight="true"
            android:ems="10"
            android:inputType="text" >
        </EditText>

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:text="@string/Maledet" />

        <Spinner
            android:id="@+id/spin_ras"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@id/textView2"
            android:layout_below="@id/textView2"
            android:layout_toLeftOf="@id/textView1" />

        <Spinner
            android:id="@+id/spin_nak"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/spin_ras"
            android:layout_below="@id/spin_ras"
            android:layout_toLeftOf="@id/textView1" />

        <Spinner
            android:id="@+id/spin_gotra"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/spin_nak"
            android:layout_toRightOf="@id/textView1" />

        <Spinner
            android:id="@+id/spin_pada"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@id/spin_nak"
            android:layout_toRightOf="@id/textView1" />

        <EditText
            android:id="@+id/editText2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/textView4"
            android:layout_alignBottom="@+id/textView4"
            android:layout_alignRight="@id/spin_pada"
            android:ems="10"
            android:inputType="text" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/spin_nak"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="14dp"
            android:text="@string/Femdet" />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@id/spin_nak"
            android:layout_below="@id/textView3"
            android:layout_marginTop="14dp"
            android:text="@string/Name" />

        <Spinner
            android:id="@+id/spin_fras"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/textView4"
            android:layout_below="@id/editText2"
            android:layout_marginTop="14dp"
            android:layout_toLeftOf="@id/textView1" />

        <Spinner
            android:id="@+id/spin_fnak"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@id/spin_fras"
            android:layout_below="@id/spin_fras"
            android:layout_toLeftOf="@id/textView1" />

        <Spinner
            android:id="@+id/spin_fpada"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@id/spin_fnak"
            android:layout_toRightOf="@id/textView1" />

        <Spinner
            android:id="@+id/spin_fgotra"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/spin_fpada"
            android:layout_toRightOf="@id/textView1" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/spin_fpada"
            android:layout_centerHorizontal="true" >

            <Button
                android:id="@+id/button1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/spin_fnak"
                android:layout_margin="5dp"
                android:text="@string/Submit" />

            <Button
                android:id="@+id/button2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:layout_toRightOf="@id/button1"
                android:text="@string/Cancel" />
        </LinearLayout>
    </RelativeLayout>

</ScrollView>

有几点需要注意。

  1. 只有在布局中首次创建新的视图ID时才需要@ + id / view_id。当您引用现有ID时,您可以使用@ id / view_id。

  2. 尽可能避免对值进行硬编码。在使用布局来适应不同的屏幕时,您会发现很难。

  3. 上述布局并不完美,但符合您的要求。您可能希望在布局中使用嵌套视图,并了解布局xml中不同属性的含义。那,你会通过尝试不同的东西来获益。

  4. 通常,设计多个屏幕涉及考虑许多因素。

    1. 支持不同尺寸和分辨率的屏幕(VGA / HVGA / WVGA / WXGA)屏幕/(hdpi / mdpi ..)密度。
    2. 不同的外形(智能手机/平板电脑)
    3. 同一设备上的不同方向(横向/纵向)。
    4. 您应该阅读this,了解有关为多种屏幕类型设计应用的完整专业知识。链接中有一个示例应用程序。

答案 2 :(得分:0)

// try this
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:padding="5dp"
    android:orientation="vertical">
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:orientation="vertical">

            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_marginTop="10dp"
                android:layout_height="wrap_content"
                android:text="@string/Maledet" />

            <LinearLayout
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:layout_width="match_parent">

                <TextView
                    android:id="@+id/textView2"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:text="@string/Name" />

                <EditText
                    android:id="@+id/editText1"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:ems="10"
                    android:inputType="text" />
            </LinearLayout>

            <LinearLayout
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:layout_width="match_parent">
                <Spinner
                    android:id="@+id/spin_ras"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"/>

                <Spinner
                    android:id="@+id/spin_gotra"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"/>
            </LinearLayout>

            <LinearLayout
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:layout_width="match_parent">

                <Spinner
                    android:id="@+id/spin_nak"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"/>

                <Spinner
                    android:id="@+id/spin_pada"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"/>
                </LinearLayout>

            <TextView
                android:id="@+id/textView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:text="@string/Femdet" />

            <LinearLayout
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:layout_width="match_parent">

                <TextView
                    android:id="@+id/textView4"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:text="@string/Name" />

                <EditText
                    android:id="@+id/editText2"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:ems="10"
                    android:inputType="text" />
                </LinearLayout>
            <LinearLayout
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:layout_width="match_parent">

                <Spinner
                    android:id="@+id/spin_fras"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"/>

                <Spinner
                    android:id="@+id/spin_fgotra"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"/>

            </LinearLayout>

            <LinearLayout
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:layout_width="match_parent">
                <Spinner
                    android:id="@+id/spin_fnak"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"/>

                <Spinner
                    android:id="@+id/spin_fpada"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"/>
                </LinearLayout>

        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="5dp">

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/spin_fnak"
            android:layout_margin="5dp"
            android:text="@string/Submit" />

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:layout_toRightOf="@id/button1"
            android:text="@string/Cancel" />
    </LinearLayout>
</LinearLayout>
相关问题