xml 布局问题:不适合所有屏幕
xml Layout issue: doesn't fit in all screens
我遇到问题 layout.I 需要在单行中添加带有图像按钮按钮的编辑文本。
我需要为 date.another 添加 2 个时间选择器。
我在单击图形布局中的预览屏幕时在一个 row.But 中获得了日期和时间的两个选择器,它显示所有屏幕的 edittext 和 imagebutton 之间有重叠和更多空间。
下面是我目前尝试过的代码。
activity_main.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:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:onClick="selectDate" >
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="55dp"
android:background="@drawable/text"
android:ems="5"
android:inputType="date" />
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/editText1"
android:layout_toRightOf="@+id/editText1"
android:contentDescription="@string/selectdate"
android:cropToPadding="true"
android:onClick="selectDate"
android:src="@drawable/ic_datepicker" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_alignBottom="@+id/imageButton1"
android:layout_toRightOf="@+id/imageButton1"
android:background="@drawable/text"
android:ems="5"
android:inputType="date" >
<requestFocus />
</EditText>
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/editText2"
android:layout_toRightOf="@+id/editText2"
android:contentDescription="@string/selecttime"
android:cropToPadding="true"
android:onClick="selecttime"
android:src="@drawable/ic_datepicker" />
</RelativeLayout>
Edittext 和 imagebutton 必须是单一的 row.It 必须完全适合所有 devices.Anyone 可以帮助我 this.Thank 你。
不幸的是,Android 患有所谓的 "fragmentation problem"。这个问题的一部分是您作为开发人员需要做一些工作来支持不同的屏幕尺寸。
Here 是解释此过程的指南。您需要为您的应用需要支持的不同屏幕尺寸创建不同的布局。
您可以使用线性布局而不是具有值 orientation="horizontal" 的相对布局。
您可以在此处找到更多信息 http://developer.android.com/guide/topics/ui/layout/linear.html 但我在下面包含了一个简短的描述。
这将自动水平布局编辑文本和图像按钮。要强制它们出现在同一行而不重叠,您可以将每个视图的宽度指定为 0dp,将它们的权重指定为 1。
这将告诉 android 无论屏幕大小如何,在屏幕上以相等宽度布置视图。如果您希望一个视图更宽,请更改其权重值,使其高于另一个。它总是最终成为总重量的比率。
您可以试试这个布局,它会满足您的要求并且适合所有屏幕。
尽管我通过将相对布局替换为线性布局对您的 xml 布局进行了一些更改
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:onClick="selectDate" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_weight="1.5"
android:inputType="date" />
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:cropToPadding="true"
android:onClick="selectDate"
android:src="@drawable/ic_launcher" />
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:layout_gravity="bottom"
android:inputType="date" >
</EditText>
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:cropToPadding="true"
android:onClick="selecttime"
android:src="@drawable/ic_launcher" />
</LinearLayout>
希望这对你有所帮助:)
将图像文本放在一个方向为 "horizontal" 的线性布局中,并在其中放置编辑文本和按钮。您可以使用 weightSum 为线性布局中的元素赋予权重,以便无论设备屏幕尺寸如何,它们都处于相同比例的距离。
<LinearLayout
android:id="@+id/linearlayout1"
android:layout_width="match_parent"
android:layout_height="30dp"
android:orientation="horizontal"
android:weightSum="2"
>
<EditText
android:id="@+id/editText1"
android:layout_width="0dp"
android:layout_height="30dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="55dp"
android:background="@drawable/text"
android:ems="5"
android:layout_weight="1.0"
android:inputType="date" />
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/editText1"
android:layout_toRightOf="@+id/editText1"
android:contentDescription="@string/selectdate"
android:cropToPadding="true"
android:onClick="selectDate"
android:layout_weight="1.0"
android:src="@drawable/ic_datepicker" />
</LinearLayout>
我遇到问题 layout.I 需要在单行中添加带有图像按钮按钮的编辑文本。
我需要为 date.another 添加 2 个时间选择器。
我在单击图形布局中的预览屏幕时在一个 row.But 中获得了日期和时间的两个选择器,它显示所有屏幕的 edittext 和 imagebutton 之间有重叠和更多空间。
下面是我目前尝试过的代码。
activity_main.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:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:onClick="selectDate" >
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="55dp"
android:background="@drawable/text"
android:ems="5"
android:inputType="date" />
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/editText1"
android:layout_toRightOf="@+id/editText1"
android:contentDescription="@string/selectdate"
android:cropToPadding="true"
android:onClick="selectDate"
android:src="@drawable/ic_datepicker" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_alignBottom="@+id/imageButton1"
android:layout_toRightOf="@+id/imageButton1"
android:background="@drawable/text"
android:ems="5"
android:inputType="date" >
<requestFocus />
</EditText>
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/editText2"
android:layout_toRightOf="@+id/editText2"
android:contentDescription="@string/selecttime"
android:cropToPadding="true"
android:onClick="selecttime"
android:src="@drawable/ic_datepicker" />
</RelativeLayout>
Edittext 和 imagebutton 必须是单一的 row.It 必须完全适合所有 devices.Anyone 可以帮助我 this.Thank 你。
不幸的是,Android 患有所谓的 "fragmentation problem"。这个问题的一部分是您作为开发人员需要做一些工作来支持不同的屏幕尺寸。
Here 是解释此过程的指南。您需要为您的应用需要支持的不同屏幕尺寸创建不同的布局。
您可以使用线性布局而不是具有值 orientation="horizontal" 的相对布局。
您可以在此处找到更多信息 http://developer.android.com/guide/topics/ui/layout/linear.html 但我在下面包含了一个简短的描述。
这将自动水平布局编辑文本和图像按钮。要强制它们出现在同一行而不重叠,您可以将每个视图的宽度指定为 0dp,将它们的权重指定为 1。
这将告诉 android 无论屏幕大小如何,在屏幕上以相等宽度布置视图。如果您希望一个视图更宽,请更改其权重值,使其高于另一个。它总是最终成为总重量的比率。
您可以试试这个布局,它会满足您的要求并且适合所有屏幕。
尽管我通过将相对布局替换为线性布局对您的 xml 布局进行了一些更改
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:onClick="selectDate" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_weight="1.5"
android:inputType="date" />
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:cropToPadding="true"
android:onClick="selectDate"
android:src="@drawable/ic_launcher" />
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:layout_gravity="bottom"
android:inputType="date" >
</EditText>
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:cropToPadding="true"
android:onClick="selecttime"
android:src="@drawable/ic_launcher" />
</LinearLayout>
希望这对你有所帮助:)
将图像文本放在一个方向为 "horizontal" 的线性布局中,并在其中放置编辑文本和按钮。您可以使用 weightSum 为线性布局中的元素赋予权重,以便无论设备屏幕尺寸如何,它们都处于相同比例的距离。
<LinearLayout
android:id="@+id/linearlayout1"
android:layout_width="match_parent"
android:layout_height="30dp"
android:orientation="horizontal"
android:weightSum="2"
>
<EditText
android:id="@+id/editText1"
android:layout_width="0dp"
android:layout_height="30dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="55dp"
android:background="@drawable/text"
android:ems="5"
android:layout_weight="1.0"
android:inputType="date" />
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/editText1"
android:layout_toRightOf="@+id/editText1"
android:contentDescription="@string/selectdate"
android:cropToPadding="true"
android:onClick="selectDate"
android:layout_weight="1.0"
android:src="@drawable/ic_datepicker" />
</LinearLayout>