Как изменить панель инструментов только на определенном фрагменте назначения с помощью компонента Navigation Controller в Android? - PullRequest
0 голосов
/ 09 мая 2019

Итак, у меня есть панель инструментов по умолчанию, в центре которой находится текстовое представление.Вот xml этой панели инструментов:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar_top"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="@color/action_bar_bkgnd"
    app:theme="@style/ToolBarTheme" >


     <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Toolbar Title"
        android:layout_gravity="center"
        android:id="@+id/toolbar_title" />


    </android.support.v7.widget.Toolbar>

в основном действии в качестве хоста навигации, я установил панель инструментов следующим образом

 private fun setupActionBar(navController: NavController) {

        setSupportActionBar(top_toolbar)
        supportActionBar?.setDisplayShowTitleEnabled(false)

        // set up top hierarchy destination
        val appBarConfiguration = AppBarConfiguration(setOf(
            R.id.destination_home,
            R.id.destination_search,
            R.id.destination_user_control,
            R.id.destination_create_event)
        )

        top_toolbar.setupWithNavController(navController,appBarConfiguration)

    }

, но в конкретном целевом фрагменте, я хочучтобы изменить эту панель инструментов, используя панель инструментов с настраиваемой панелью поиска, xml выглядит следующим образом:

<androidx.appcompat.widget.Toolbar
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="?attr/colorPrimary"
            android:theme="?attr/actionBarTheme"
            android:minHeight="?attr/actionBarSize"
            android:id="@+id/top_toolbar"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            android:elevation="4dp"
            android:contentInsetLeft="0dp"
            android:contentInsetStart="0dp"
            app:contentInsetLeft="0dp"
            app:contentInsetStart="0dp"
            android:contentInsetRight="0dp"
            android:contentInsetEnd="0dp"
            app:contentInsetRight="0dp"
            app:contentInsetEnd="0dp">

        <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="match_parent"
                android:layout_height="50dp"
                tools:context=".Fragments.Search.SearchFragment"
                android:id="@+id/constraintLayout_toolbar" tools:layout_editor_absoluteY="8dp"
                tools:layout_editor_absoluteX="16dp">


            <View
                    android:layout_width="0dp"
                    android:layout_height="0dp"
                    android:id="@+id/base_searchView_toolbar_main_activity"
                    android:background="@drawable/round_outline_search_view" app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    android:layout_marginEnd="16dp"
                    app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent"
                    android:layout_marginTop="8dp" android:layout_marginBottom="8dp"
                    app:layout_constraintHorizontal_bias="0.0" app:layout_constraintVertical_bias="1.0"
                    android:layout_marginStart="16dp"/>

            <ImageView
                    android:src="@drawable/ic_search"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/imageView_search_icon_main_activity"
                    app:layout_constraintStart_toStartOf="@+id/base_searchView_toolbar_main_activity"
                    android:layout_marginStart="8dp"
                    app:layout_constraintTop_toTopOf="@+id/base_searchView_toolbar_main_activity"
                    app:layout_constraintBottom_toBottomOf="@+id/base_searchView_toolbar_main_activity"/>

            <EditText
                    android:layout_width="0dp"
                    android:layout_height="0dp"
                    android:inputType="textPersonName"
                    android:ems="10"
                    android:id="@+id/editText_search_keyword_main_activity"
                    android:hint="Cari Acara, Ustadz atau Lokasi" android:textSize="12sp"
                    app:layout_constraintStart_toEndOf="@+id/imageView_search_icon_main_activity"
                    android:layout_marginStart="4dp" android:layout_marginEnd="8dp"
                    app:layout_constraintEnd_toEndOf="@+id/base_searchView_toolbar_main_activity"
                    app:layout_constraintTop_toTopOf="@+id/base_searchView_toolbar_main_activity"
                    app:layout_constraintBottom_toBottomOf="@+id/base_searchView_toolbar_main_activity"
                    android:background="@android:color/transparent"
                    android:imeOptions="actionSearch"
                    android:maxLines="1"/>
            <TextView
                    android:text="TextView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    app:layout_constraintEnd_toEndOf="parent"
                    android:layout_marginEnd="8dp" app:layout_constraintStart_toStartOf="constraintLayout_main_activity"
                    android:layout_marginStart="8dp" android:layout_marginTop="8dp"
                    app:layout_constraintTop_toTopOf="parent" android:layout_marginBottom="8dp"
                    app:layout_constraintBottom_toBottomOf="parent" android:id="@+id/destination_label_text_view"/>


        </androidx.constraintlayout.widget.ConstraintLayout>


    </androidx.appcompat.widget.Toolbar>

так каков наилучший способ добиться этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...