java - 根据设备的大小调整 Android 中的表单大小

标签 java android xml forms android-layout

我在我的模拟器(Google Pixel c)上制作了这个表单,如下图所示:

enter image description here

然后我在 Samsung Galaxy Tab 上尝试了该应用程序,出现了一个白条:

enter image description here

我该如何解决这个问题?这是我的 xml 代码,格式为:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="@style/MyDialog"
android:layout_width="@dimen/_100sdp"
android:layout_height="@dimen/_100sdp"
android:gravity="center">

<Button
    android:id="@+id/button_form"
    android:layout_width="@dimen/_20sdp"
    android:layout_height="@dimen/_10sdp"
    android:layout_below="@+id/nameEditText"
    android:layout_marginLeft="@dimen/_30sdp"
    android:layout_marginTop="@dimen/_5sdp"
    android:layout_marginBottom="@dimen/_7sdp"
    android:background="@drawable/button_bg"
    android:textAlignment="center"
    android:textColor="@color/whiteTextColor"
    android:textSize="@dimen/_7sdp"
    android:text="OK">

</Button>

<CheckBox
    android:id="@+id/myCheckBox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="@dimen/_11sdp"
    android:text="Abilitare la palette di colori?" />

<EditText
    android:id="@+id/nameEditText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/genderRadioGroup"
    android:layout_alignParentLeft="true"
    android:layout_marginTop="@dimen/_2sdp"
    android:ems="10"
    android:hint="Inserisci l'eta'">

    <requestFocus />
</EditText>

<RadioGroup
    android:id="@+id/genderRadioGroup"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/myCheckBox">


    <RadioButton
        android:id="@+id/maleRadioButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginTop="@dimen/_3sdp"
        android:text="Maschio" />


    <RadioButton
        android:id="@+id/femaleRadioButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/maleRadioButton"
        android:layout_alignParentLeft="true"
        android:layout_marginTop="@dimen/_1sdp"
        android:text="Femmina" />
</RadioGroup>

我使用 SDP 库来使其适应每种屏幕分辨率。这会是问题所在吗?

最佳答案

按照@vidulaJ的建议解决

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="@style/MyDialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center">

<Button
    android:id="@+id/button_form"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/nameEditText"
    android:layout_marginLeft="@dimen/_24sdp"
    android:layout_marginTop="@dimen/_5sdp"
    android:layout_marginBottom="@dimen/_7sdp"
    android:background="@drawable/button_bg"
    android:textAlignment="center"
    android:textColor="@color/whiteTextColor"
    android:textSize="@dimen/_7sdp"
    android:text="OK">

</Button>

<CheckBox
    android:id="@+id/myCheckBox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="@dimen/_11sdp"
    android:text="Abilitare la palette di colori?" />

<EditText
    android:id="@+id/nameEditText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/genderRadioGroup"
    android:layout_alignParentLeft="true"
    android:layout_marginTop="@dimen/_2sdp"
    android:ems="10"
    android:hint="Inserisci l'eta'">

    <requestFocus />
</EditText>

<RadioGroup
    android:id="@+id/genderRadioGroup"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/myCheckBox">


    <RadioButton
        android:id="@+id/maleRadioButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginTop="@dimen/_3sdp"
        android:text="Maschio" />


    <RadioButton
        android:id="@+id/femaleRadioButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/maleRadioButton"
        android:layout_alignParentLeft="true"
        android:layout_marginTop="@dimen/_1sdp"
        android:text="Femmina" />
</RadioGroup>

关于java - 根据设备的大小调整 Android 中的表单大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58120403/

相关文章:

java - 如何在不使用java中任何现有排序方法的情况下对数组列表进行升序排序?

java - 重写的函数未接收数据?

java - 没有 SpringJUnit4ClassRunner 或 AbstractJUnit4SpringContextTests 的 Spring 测试上下文设置(在 Selenium 测试中)

android - 如何在 android 中测试 In App 订阅

android - 在android中录制和播放直播视频

java - 如何在表格布局中更改/调整 EditText 的大小?

ruby-on-rails - 在 Ruby 中从 XML 字符串创建对象

java - Walking Tree - 标签值的长度

android - 支持工具栏与支持搜索 View

java - Android 布局中的绝对居中