当我从活动更改为片段时如何更改工具栏

问题描述 投票:1回答:1

我有一个Activity,一个工具栏和几个片段,如何更改从MainActivity传递给片段的工具栏

我试过从fragment1.xml调用工具栏,但它显示两个工具栏一个在另一个之上

这是我称之为片段的地方

        R.id.menu_acercade -> {
                    binding.navegacionInferior.selectedItemId = item.itemId
                    cerrarDrawer()
                    false
                }
        R.id.menu_acercade -> {
                            intercalarIconosMenu(false)
                            intercalarPagers(true)
                            binding.navegacionInferior.menu.getItem(2).isCheckable = true  //binding.navegacionInferior.menu.getItem(2).isCheckable = true
                            binding.viewpagerSecciones.setCurrentItem(0, true) //antes 0
                            true
                        }

这是我要更改ActionBar的片段的XML,但每当我添加layou标记时,它都会添加另一个Actionbar示例

two ActionBars

<?xml version="1.0" encoding="utf-8"?>
<layout 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">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <!--<include layout="@layout/toolbar_atras" />-->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="542dp"
            android:orientation="vertical">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginTop="24dp"
                android:src="@drawable/about_logo" />
            <android.support.v7.widget.AppCompatTextView
                style="@style/Titulo.Principal"
                android:layout_marginBottom="24dp"
                android:text="@string/menu_opcion_acercade" />
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="36dp"
                android:layout_marginRight="36dp"
                android:layout_marginBottom="16dp"
                android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."
                android:textColor="@color/colorTexto" />
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="36dp"
                android:layout_marginRight="36dp"
                android:text="Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
                android:textColor="@color/colorTexto" />
        </LinearLayout>


        <android.support.design.widget.BottomNavigationView
            android:id="@+id/navegacionInferior"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginEnd="0dp"
            android:layout_marginBottom="0dp"
            android:background="@color/colorBlanco"
            android:paddingEnd="0dp"
            android:paddingBottom="0dp"
            app:elevation="16dp"
            app:itemBackground="@drawable/fondo_navegacioninferior"
            app:itemIconTint="@color/colorPrimario"
            app:itemTextColor="@color/colorPrimario"
            tools:menu="@menu/menu_inferior" />
    </LinearLayout>
</layout>
android android-fragments android-activity kotlin android-toolbar
1个回答
0
投票

在您的活动中

setSupportActionBar(yourToolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
supportActionBar?.setDisplayShowHomeEnabled(true)

在你的片段中

(activity as? AppCompatActivity)?.supportActionBar?.title = "Your Title"

您的活动布局应该遵循以下示例中的顺序

<android.support.design.widget.CoordinatorLayout
android:id="@+id/main_content"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<!-- AppBarLayout is a wrapper for a Toolbar -->
<!-- Note that AppBarLayout expects to be the first child nested within a CoordinatorLayout -->
<android.support.design.widget.AppBarLayout
    android:id="@+id/appBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|enterAlways" />
</android.support.design.widget.AppBarLayout>


<!-- FrameLayout can be used to insert fragments to display the content of the screen -->

<FrameLayout
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    />

</android.support.design.widget.CoordinatorLayout>
© www.soinside.com 2019 - 2024. All rights reserved.