按钮和编辑文本的大小随 android API 21 变化
size of button and edittext change with android API 21
我正在开发一个 android 应用程序,它在 API 13 到 19 上运行良好,当我用 API 21 测试它时,按钮大小、edittext 和 textview 发生变化(变得更大)。我正在使用(match_parent 和 wrap_content)。我在网上发现我应该添加这些行 android:textAllCaps="false"
android:stateListAnimator="@null"
但我得到了相同的结果
这是我的 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:background="#ffffff"
xmlns:android="http://schemas.android.com/apk/res/android" >
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:textAllCaps="false"
android:stateListAnimator="@null"
android:layout_height="fill_parent"
android:background="#ffff" >
<ImageView
android:id="@+id/logimage"
android:layout_width="387px"
android:layout_height="180px"
android:textAllCaps="false"
android:stateListAnimator="@null"
android:layout_marginTop="40px"
android:src="@drawable/logo_nearby"
android:layout_centerHorizontal="true"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/btnstart"
android:textSize="13sp"
android:textAllCaps="false"
android:stateListAnimator="@null"
android:background="#8cd2fc"
android:textColor="#ffffff"
android:singleLine="true"
android:layout_marginTop="80px"
android:layout_centerHorizontal="true"
android:text="Create account"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_below="@id/logimage"/>
<Button
android:layout_width="fill_parent"
android:id="@+id/btnanonym"
android:textSize="13sp"
android:layout_centerHorizontal="true"
android:layout_below="@+id/btnstart"
android:layout_marginTop="30px"
android:text="Connect as anonyme"
android:background="#00b4e8"
android:singleLine="true"
android:textAllCaps="false"
android:stateListAnimator="@null"
android:textColor="#ffffff"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_height="wrap_content" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/btncnxuser"
android:background="#00b4e8"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_centerHorizontal="true"
android:text="Connect as member"
android:textColor="#ffffff"
android:textAllCaps="false"
android:stateListAnimator="@null"
android:textSize="13sp"
android:singleLine="true"
android:layout_marginTop="85px"
android:layout_below="@id/btnanonym"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10px"
android:id="@+id/txtinfo"
android:text="You have already account ?"
android:textColor="#000"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_centerHorizontal="true"
android:layout_below="@id/btnanonym"/>
<com.facebook.login.widget.LoginButton
android:layout_width="match_parent"
android:id="@+id/logButton"
android:layout_marginTop="30px"
android:textAllCaps="false"
android:stateListAnimator="@null"
android:background="#3c5f9d"
android:singleLine="true"
android:text="Login with Facebook"
android:textSize="12sp"
android:textColor="#ffffff"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_below="@+id/btncnxuser"
android:layout_height="wrap_content">
</com.facebook.login.widget.LoginButton>
xml 使用 Edittext 的代码:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff" >
<ImageView
android:id="@+id/logimage"
android:layout_width="187sp"
android:layout_height="50dp"
android:layout_marginTop="20dp"
android:src="@drawable/logo_nearby"
android:layout_centerHorizontal="true"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="43dp"
android:id="@+id/msgerror"
android:textSize="6dp"
android:layout_below="@id/logimage"
android:textColor="#FF0000"
android:layout_centerHorizontal="true"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:inputType="textPersonName"
android:hint="First name"
android:padding="5dp"
android:textSize="17dp"
android:textColorHint="@color/hinttxt"
android:background="@color/bluehint"
android:singleLine="true"
android:id="@+id/txtfirstn"
android:layout_below="@id/msgerror"
android:layout_centerHorizontal="true"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:hint="Last name"
android:textSize="17dp"
android:layout_marginTop="10dp"
android:padding="5dp"
android:singleLine="true"
android:textColorHint="@color/hinttxt"
android:background="@color/bluehint"
android:id="@+id/txtlastn"
android:layout_below="@id/txtfirstn"
android:layout_centerHorizontal="true"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:hint="Email"
android:layout_marginTop="10dp"
android:textColorHint="@color/hinttxt"
android:background="@color/bluehint"
android:inputType="textEmailAddress"
android:padding="5dp"
android:textSize="17dp"
android:singleLine="true"
android:id="@+id/txtemail"
android:layout_below="@id/txtlastn"
/>
<Spinner
android:id="@+id/my_spinner"
android:layout_width="match_parent"
android:spinnerMode="dialog"
android:prompt="@string/prompt"
android:layout_below="@id/txtemail"
android:popupElevation="@drawable/rounded_corner"
android:layout_height="wrap_content" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="phone"
android:hint="Phone"
android:padding="5dp"
android:textSize="17dp"
android:singleLine="true"
android:textColorHint="@color/hinttxt"
android:background="@color/bluehint"
android:id="@+id/txtphone"
android:layout_below="@id/my_spinner"
android:layout_centerHorizontal="true" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:hint="Your password"
android:layout_marginTop="10dp"
android:inputType="textPassword"
android:padding="5dp"
android:singleLine="true"
android:textSize="17dp"
android:textColorHint="@color/hinttxt"
android:background="@color/bluehint"
android:id="@+id/txtpwd"
android:layout_below="@id/txtphone"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="17dp"
android:layout_centerHorizontal="true"
android:hint="Re type your password"
android:inputType="textPassword"
android:padding="5dp"
android:singleLine="true"
android:layout_marginTop="10dp"
android:id="@+id/txtrepwd"
android:textColorHint="@color/hinttxt"
android:background="@color/bluehint"
android:layout_below="@id/txtpwd"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Register"
android:textSize="13sp"
android:textColor="#ffffff"
android:background="@color/bluedrawer"
android:id="@+id/register"
android:layout_centerHorizontal="true"
android:layout_below="@id/txtrepwd"
android:layout_centerInParent="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_marginTop="20dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/register"
android:visibility="gone"
android:id="@+id/idH"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:layout_below="@id/idH"
android:id="@+id/title"
/>
</RelativeLayout>
</ScrollView>
您必须使用 dp/dip 而不是使用 px 和 sp。它不会根据 phone 默认样式和分辨率或版本 > 19.
变大。
这种做法将有助于您获得一致的意见。
您在 Button
和 TextView
中使用 px
作为单位,您应该改用 dp
。可能是问题所在。
在您的 EditText
中,您正在设置 android:layout_width="match_parent"
,因此它将与父 View
一样宽。如果你想要设置一个特定的宽度,将 android:layout_height="wrap_content"
更改为你想要的大小,例如
android:layout_height="128dp"
我正在开发一个 android 应用程序,它在 API 13 到 19 上运行良好,当我用 API 21 测试它时,按钮大小、edittext 和 textview 发生变化(变得更大)。我正在使用(match_parent 和 wrap_content)。我在网上发现我应该添加这些行 android:textAllCaps="false"
android:stateListAnimator="@null"
但我得到了相同的结果
这是我的 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:background="#ffffff"
xmlns:android="http://schemas.android.com/apk/res/android" >
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:textAllCaps="false"
android:stateListAnimator="@null"
android:layout_height="fill_parent"
android:background="#ffff" >
<ImageView
android:id="@+id/logimage"
android:layout_width="387px"
android:layout_height="180px"
android:textAllCaps="false"
android:stateListAnimator="@null"
android:layout_marginTop="40px"
android:src="@drawable/logo_nearby"
android:layout_centerHorizontal="true"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/btnstart"
android:textSize="13sp"
android:textAllCaps="false"
android:stateListAnimator="@null"
android:background="#8cd2fc"
android:textColor="#ffffff"
android:singleLine="true"
android:layout_marginTop="80px"
android:layout_centerHorizontal="true"
android:text="Create account"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_below="@id/logimage"/>
<Button
android:layout_width="fill_parent"
android:id="@+id/btnanonym"
android:textSize="13sp"
android:layout_centerHorizontal="true"
android:layout_below="@+id/btnstart"
android:layout_marginTop="30px"
android:text="Connect as anonyme"
android:background="#00b4e8"
android:singleLine="true"
android:textAllCaps="false"
android:stateListAnimator="@null"
android:textColor="#ffffff"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_height="wrap_content" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/btncnxuser"
android:background="#00b4e8"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_centerHorizontal="true"
android:text="Connect as member"
android:textColor="#ffffff"
android:textAllCaps="false"
android:stateListAnimator="@null"
android:textSize="13sp"
android:singleLine="true"
android:layout_marginTop="85px"
android:layout_below="@id/btnanonym"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10px"
android:id="@+id/txtinfo"
android:text="You have already account ?"
android:textColor="#000"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_centerHorizontal="true"
android:layout_below="@id/btnanonym"/>
<com.facebook.login.widget.LoginButton
android:layout_width="match_parent"
android:id="@+id/logButton"
android:layout_marginTop="30px"
android:textAllCaps="false"
android:stateListAnimator="@null"
android:background="#3c5f9d"
android:singleLine="true"
android:text="Login with Facebook"
android:textSize="12sp"
android:textColor="#ffffff"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_below="@+id/btncnxuser"
android:layout_height="wrap_content">
</com.facebook.login.widget.LoginButton>
xml 使用 Edittext 的代码:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff" >
<ImageView
android:id="@+id/logimage"
android:layout_width="187sp"
android:layout_height="50dp"
android:layout_marginTop="20dp"
android:src="@drawable/logo_nearby"
android:layout_centerHorizontal="true"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="43dp"
android:id="@+id/msgerror"
android:textSize="6dp"
android:layout_below="@id/logimage"
android:textColor="#FF0000"
android:layout_centerHorizontal="true"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:inputType="textPersonName"
android:hint="First name"
android:padding="5dp"
android:textSize="17dp"
android:textColorHint="@color/hinttxt"
android:background="@color/bluehint"
android:singleLine="true"
android:id="@+id/txtfirstn"
android:layout_below="@id/msgerror"
android:layout_centerHorizontal="true"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:hint="Last name"
android:textSize="17dp"
android:layout_marginTop="10dp"
android:padding="5dp"
android:singleLine="true"
android:textColorHint="@color/hinttxt"
android:background="@color/bluehint"
android:id="@+id/txtlastn"
android:layout_below="@id/txtfirstn"
android:layout_centerHorizontal="true"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:hint="Email"
android:layout_marginTop="10dp"
android:textColorHint="@color/hinttxt"
android:background="@color/bluehint"
android:inputType="textEmailAddress"
android:padding="5dp"
android:textSize="17dp"
android:singleLine="true"
android:id="@+id/txtemail"
android:layout_below="@id/txtlastn"
/>
<Spinner
android:id="@+id/my_spinner"
android:layout_width="match_parent"
android:spinnerMode="dialog"
android:prompt="@string/prompt"
android:layout_below="@id/txtemail"
android:popupElevation="@drawable/rounded_corner"
android:layout_height="wrap_content" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="phone"
android:hint="Phone"
android:padding="5dp"
android:textSize="17dp"
android:singleLine="true"
android:textColorHint="@color/hinttxt"
android:background="@color/bluehint"
android:id="@+id/txtphone"
android:layout_below="@id/my_spinner"
android:layout_centerHorizontal="true" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:hint="Your password"
android:layout_marginTop="10dp"
android:inputType="textPassword"
android:padding="5dp"
android:singleLine="true"
android:textSize="17dp"
android:textColorHint="@color/hinttxt"
android:background="@color/bluehint"
android:id="@+id/txtpwd"
android:layout_below="@id/txtphone"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="17dp"
android:layout_centerHorizontal="true"
android:hint="Re type your password"
android:inputType="textPassword"
android:padding="5dp"
android:singleLine="true"
android:layout_marginTop="10dp"
android:id="@+id/txtrepwd"
android:textColorHint="@color/hinttxt"
android:background="@color/bluehint"
android:layout_below="@id/txtpwd"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Register"
android:textSize="13sp"
android:textColor="#ffffff"
android:background="@color/bluedrawer"
android:id="@+id/register"
android:layout_centerHorizontal="true"
android:layout_below="@id/txtrepwd"
android:layout_centerInParent="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_marginTop="20dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/register"
android:visibility="gone"
android:id="@+id/idH"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:layout_below="@id/idH"
android:id="@+id/title"
/>
</RelativeLayout>
</ScrollView>
您必须使用 dp/dip 而不是使用 px 和 sp。它不会根据 phone 默认样式和分辨率或版本 > 19.
变大。这种做法将有助于您获得一致的意见。
您在 Button
和 TextView
中使用 px
作为单位,您应该改用 dp
。可能是问题所在。
在您的 EditText
中,您正在设置 android:layout_width="match_parent"
,因此它将与父 View
一样宽。如果你想要设置一个特定的宽度,将 android:layout_height="wrap_content"
更改为你想要的大小,例如
android:layout_height="128dp"