首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android基本布局,可在多个活动中使用按钮

Android基本布局,可在多个活动中使用按钮
EN

Stack Overflow用户
提问于 2018-06-19 06:47:55
回答 1查看 155关注 0票数 0

我正在开发一个Android应用程序,其中许多活动需要在其布局中有4个按钮,在屏幕的每个角落都有一个按钮。无论当前活动如何(例如,声音关闭/声音打开切换按钮、帮助按钮等),这些按钮的行为总是相同的。我设计了一个带有右上角和左上角按钮的base_layout,并在activities的布局中使用了标记。我还创建了一个具有按钮行为的BaseActivity类,因此包含按钮的每个活动都继承自这个类。到目前为止,它运行正常,但如果我在屏幕底部添加一个按钮,此布局将与每个活动的布局重叠,因此我只能看到base_layout,而看不到活动布局。

这是base_layout.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<ImageButton
    android:id="@+id/btn_atras"
    android:src="@drawable/flecha_atras"
    android:layout_width="50dp"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:adjustViewBounds="true"
    android:scaleType="fitXY"
    android:background="@android:color/transparent"
   android:contentDescription="Atrás"/>

<ToggleButton
    android:id="@+id/btn_sonido"
    android:layout_width="50dp"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:background="@android:color/transparent"
    android:button="@drawable/sonido_selector"
    android:checked="true"
    android:textOff=""
    android:textOn="" />

<ImageButton
    android:id="@+id/btn_ayuda"
    android:src="@drawable/ayuda"
    android:layout_width="50dp"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:adjustViewBounds="true"
    android:scaleType="fitXY"
    android:background="@android:color/transparent"
    android:contentDescription="Ayuda"/>

</RelativeLayout>

下面是一个使用它的活动的布局的一部分:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_blue_light">

<include
    android:id="@+id/bar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    layout="@layout/base_layout" />

<TextView
    android:id="@+id/textView"
    style="@style/TextoTitulo"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="@string/titulo_menu" />

<!--more stuff here that I'm cutting because it's irrelevant to the question--->
</LinearLayout>

在每个活动中,在屏幕的每个角落实现4个全局按钮的最佳方式是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-19 07:02:25

您可以使用ConstraintLayoutmerge标记。

base_layout.xml看起来像这样

代码语言:javascript
复制
<merge 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:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:parentTag="android.support.constraint.ConstraintLayout">
    .
    .
    .

而活动xml需要类似这样的内容

代码语言:javascript
复制
<android.support.constraint.ConstraintLayout
    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:layout_width="match_parent"
    android:layout_height="wrap_content">

    <include
        android:id="@+id/bar"
        layout="@layout/base_layout"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintEnd_toStartOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent" />
    .
    .
    .
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50918423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档