我目前正在学习Android开发,阅读一本书并使用Android Studio进行创建,并使用Nexus 4设备进行测试。我一直在使用布局预览器测试我的布局是否合适。
以下是布局的屏幕截图及其在Android Studio预览器中的显示方式。对不起,大尺寸。
以下是我的Nexus 4设备截图,以显示差异。
正如您所看到的,EditText字段在预览中显示为在行中但在设备上不在线。除了EditTexts之外,我对2个图像进行了比较,其余的元素都应该存在。布局使用了一个左边一个嵌套的LinearLayout。
以下是我在XML中定义了一个EditText的方法。所有其他都是具有不同ID的副本。
<EditText android:id="@+id/editTextColonies"
android:inputType="number"
android:ems="12"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"/>
我想知道这是由我的代码,我的设备还是简单的Android Studio引起的。 提前感谢您的解决方案。
答案 0 :(得分:2)
如果可以,切换到RelativeLayout,然后可以定义android:layout_toRightOf和android:layout_below XML标记。我不建议使用GUI来放置具有RelativeLayout的对象,因为它非常烦人。使用XML放置它会更容易。
答案 1 :(得分:0)
在EditTexts旁边创建按钮行。每行应该是LinearLayout或RelativeLayout,你应该为每一行设置android:height =“wrap_content”。将按钮编辑文本对放入其中。
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="bottom" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_name_colonists"
android:id="@+id/colonistsButton"/>
<EditText android:id="@+id/editTextColonists"
android:inputType="number"
android:ems="12"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"/>
</LinearLayout>
</LinearLayout>
要重新使用布局,例如常见的重复行,需要注意的是this link by Google about include.