gpt4 book ai didi

android - 使用 布局查看绑定(bind)问题

转载 作者:行者123 更新时间:2023-12-02 00:04:34 25 4
gpt4 key购买 nike

我正在使用 Android Studio 3.6.2 并启用了 View 绑定(bind)功能。

在通过绑定(bind)使用 include 标签添加 View 时遇到困难。

Toolbar.xml

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.appbar.MaterialToolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="?toolbarStyle"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:elevation="0dp" />

MainActivity.xml

<?xml version="1.0" encoding="utf-8"?>

<include
android:id="@+id/toolbar"
layout="@layout/toolbar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<androidx.fragment.app.FragmentContainerView
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
app:defaultNavHost="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/toolbar"
app:navGraph="@navigation/merchant_navigation_graph" />

MainActivity.kt

    class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
setTheme(R.style.AvailsTheme_DayNight)
super.onCreate(savedInstanceState)
val binding = ActivityMainBinding.inflate(layoutInflater)

val toolbarBinding = binding.toolbar

setContentView(binding.root)
}
}

最佳答案

您正在访问包含的布局绑定(bind),而不是包含布局内的工具栏。我可以看到你没有给 MaterialToolbar 任何 ID。因此,您需要为 XML 中的工具栏对象提供一个 ID,并将其包含在布局中,然后提供一个 ID,然后在您的 Kotlin 文件中访问它,如 val toolbar = binding.includedLayout.toolbar。此外,您在 setContentView(binding.root) 之前访问 View 是错误的。在尝试访问 View 之前,您需要设置布局。

工具栏.xml

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.appbar.MaterialToolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/toolbar"
style="?toolbarStyle"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:elevation="0dp" />

主 Activity .xml

 <include
android:id="@+id/includedLayout"
layout="@layout/toolbar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

主 Activity .kt

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
setTheme(R.style.AvailsTheme_DayNight)
super.onCreate(savedInstanceState)
val binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
val toolbar = binding.includedLayout.toolbar
}
}

关于android - 使用 <Include> 布局查看绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61027389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com