相同的XML - 不同的布局 - API 10和API 17

时间:2013-07-08 13:32:08

标签: android api android-layout android-xml

xml bellow根据API生成两个不同的布局屏幕。这种布局在具有API 17的设备中,布局看起来很好,输入文本集中在屏幕上。

但是在API 10上运行的相同布局看起来很奇怪,左上角的字段......

xml代码段如下:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#005500">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dip"
        android:layout_marginRight="15dip"
        android:layout_marginTop="200dip"
        android:orientation="vertical" >

        <EditText 
          android:id="@+id/et_nome_login"
          android:layout_width="match_parent"
          android:layout_height="40dip"
          android:paddingRight="15dip"
          android:paddingLeft="15dip"
          android:inputType="text"
          android:nextFocusDown="@+id/et_senha_login"
          android:background="@drawable/bg_login_name"/>

        <EditText 
          android:id="@+id/et_senha_login"
          android:layout_width="match_parent"
          android:layout_height="40dip"
          android:paddingRight="15dip"
          android:paddingLeft="15dip"
          android:inputType="textPassword"
          android:background="@drawable/bg_login_senha"/>

        <ImageButton 
            android:id="@+id/ib_login"
            android:layout_width="match_parent"
            android:layout_height="50dip"
            android:layout_marginTop="20dip"
            android:background="@drawable/btn_entrar"/>

    </LinearLayout>


    <FrameLayout
            android:id="@+id/progress_login"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#AA000000"
            android:clickable="true"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:visibility="gone" >

            <ProgressBar
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:layout_gravity="center" />
    </FrameLayout>

</FrameLayout>   

在API 10上,视图位于左上角,而在API 17上,字段被更正位于中心。问题在哪里?

2 个答案:

答案 0 :(得分:0)

您可以包含不同的xml:

<include layout="@layout/include_file" />

不同的xml必须位于具有相同名称的自己的API文件夹中:

值-V11

  • include_file.xml
  • ...

值-V14

  • include_file.xml
  • ...

答案 1 :(得分:0)

你应该使用weight属性在每个大小或API中运行一个xml。

试试这个link