[英]How to achieve this layout in Android (studio)
我叫喬希。 我正在嘗試在Android中實現以下布局,但似乎無法拆分內部布局以獲取所需的布局。 有人可以幫忙嗎。
這是我到目前為止的內容:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.firstapplication.myapplication.MainActivity">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/imageView" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:text="Name"
android:ems="10"
android:id="@+id/editText" />
</LinearLayout>
</RelativeLayout>
我唯一的問題是,我不知道如何拆分圖片中所示的布局。
相應地設置LinearLayout的height參數,以實現兩個布局之間的所需比例。
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="**XYZ dp**"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true">
您可以通過多種方式解決此問題。 我不知道您的布局要求,但您實際上不需要兩個LinearLayout
即可解決此問題。 但是,當前您所要做的就是為您的第一個LinearLayout
一個ID,並將高度設置為wrap_content
如下所示:
<LinearLayout
android:id="@+id/LL1"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true">
然后在第二個布局中將位置設置為低於第一個布局,將高度設置為wrap_content
並刪除layout_alignParentTop
否則第二個布局將與第一個布局重疊。 因此,您第二次有這樣的事情:
<LinearLayout
android:layout_below="@id/LL1"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true">
這會將第二個布局放在第一個布局的下面,但是除非第一個布局始終保持恆定的高度,否則尺寸會有所不同。
如果您知道始終要使用70:30的比例,而不考慮第一個布局高度,則可以改用layout_weights
。 如果您要查找的是我可以添加的內容。
要使比例恆定,請將根布局更改為LinearLayout
而不是RelativeLayout
然后將方向設置為垂直,並將weightSum
為1。
然后將您的第一個LinearLayout
設置為0.7的layout_weight
,將第二個LinearLayout
設置為0.3的layout_weight
。 像這樣:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1"
android:orientation="vertical">
<LinearLayout
android:id="@+id/LL1"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.7"></LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.3"></LinearLayout>
</LinearLayout>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.