首页 > 解决方案 > Android Studio - 布局在另一个布局之上

问题描述

我正在开发一个应该通过蓝牙接收数据的 Android Studio 应用程序。目前我的应用程序有一个包含配对设备的列表和一个显示接收到的数据的面板,但它们都在同一个屏幕上(布局)。我想让 PairedDevice 列表显示在整个屏幕上,当我选择一个设备时,该列表确实变得不可见,并且显示数据的面板。我不知道该怎么做,这是我的接口代码:

<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="match_parent"
android:orientation="horizontal"
android:background="@drawable/list_background"
tools:context=".ListDeviceActivity">
<LinearLayout
    android:id="@+id/DataExchange"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:orientation="vertical">

    <TextView
        android:id="@+id/DataTitle"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:text="Data:"
        android:textAlignment="center"
        android:textColor="#000000"
        android:visibility="invisible"
        android:textSize="20dp"></TextView>

    <TextView
        android:id="@+id/status"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_marginBottom="150dp"
        android:layout_weight="1"
        android:gravity="bottom"
        android:textSize="20dp"></TextView>
    <Button
        android:id="@+id/LcdPlayAndPause"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="invisible"
        android:text="Lcd_Pause">
    </Button>
    <Button
        android:id="@+id/PlayAndPause"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="invisible"
        android:text="Bluetooth_Pause">
    </Button>
    <Button
        android:id="@+id/Zero"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="invisible"
        android:text="Zero"></Button>

    <Button
        android:id="@+id/Unit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="invisible"

        android:text="Unit">
    </Button>


</LinearLayout>

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="vertical">

    <TextView
        android:id="@id/title"
        android:layout_width="200dp"
        android:layout_height="40dp"
        android:text="Paired Devices"
        android:textAlignment="center"
        android:textColor="#000000"
        android:textSize="20dp">

    </TextView>

    <ListView
        android:id="@+id/pairedlist"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="150dp" />


</LinearLayout>

标签: androidlayout

解决方案


这很简单。最初将列表设置为 match_parent 的高度并将面板布局设置为消失。在项目列表的 onClick 方法中,只需使列表消失并将面板可见性设置为 VISIBLE。看来您已将该属性设置为“不可见”,但您可以使其“消失”。

    <LinearLayout
    android:id="@+id/DataExchange"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:visibility="gone"
    android:orientation="vertical">

通过这种方式,您可以让它消失,直到执行 onClick,然后您可以在您的设备列表中执行此操作,

    <LinearLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:visibility="gone"
    android:orientation="vertical">

推荐阅读