簡體   English   中英

如何在Android中實現此布局(Studio)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM