使用 android studio 在 activity 中实现工具栏的正确方法
Correct way to implement a toolbar in activity using android studio
我在向我的应用程序添加工具栏时遇到问题。我从一个空 activity 开始。使用本教程 https://developer.android.com/training/appbar/setting-up and this tutorial https://m.youtube.com/watch?v=DMkzIOLppf4.
然而,尽管 implementation 'com.android.support:appcompat-v7:28.0.0'
添加到 build.gradle (Module:app) 中的依赖项,使用支持库似乎不起作用,因为我收到以下错误:
package android.support.v7.widget does not exist
import android.support.v7.widget.Toolbar;
我已经发现这可能是由于启用了 androidx,事实上,我发现
android.useAndroidX=true
android.enableJetifier=true
在 gradle.properties 中。但是,将两者都设置为 false 会出现以下错误:
ERROR: Manifest merger failed : Attribute application@appComponentFactory value=(androidx.core.app.CoreComponentFactory) from [androidx.core:core:1.0.1] AndroidManifest.xml:22:18-86
is also present at [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 value=(android.support.v4.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-24:19 to override.
但老实说,我不知道如何处理该错误消息...
你能告诉我添加工具栏的正确方法是什么吗?如果它启用了 androidx,你能指点我教程吗?反之亦然,如果它是通过 android.support.v7.widget,我需要做什么才能让它工作?
谢谢!
我想我找到了解决办法。
没有必要实施com.android.support:appcompat-v7:28.0.0
。而是使用
androidx.appcompat.widget.Toolbar
在java-文件中你需要添加
import androidx.appcompat.widget.Toolbar;
并使用
设置工具栏
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
但是,如果更有经验的人可以验证这个解决方案是正确的,我会很高兴。
我在向我的应用程序添加工具栏时遇到问题。我从一个空 activity 开始。使用本教程 https://developer.android.com/training/appbar/setting-up and this tutorial https://m.youtube.com/watch?v=DMkzIOLppf4.
然而,尽管 implementation 'com.android.support:appcompat-v7:28.0.0'
添加到 build.gradle (Module:app) 中的依赖项,使用支持库似乎不起作用,因为我收到以下错误:
package android.support.v7.widget does not exist
import android.support.v7.widget.Toolbar;
我已经发现这可能是由于启用了 androidx,事实上,我发现
android.useAndroidX=true
android.enableJetifier=true
在 gradle.properties 中。但是,将两者都设置为 false 会出现以下错误:
ERROR: Manifest merger failed : Attribute application@appComponentFactory value=(androidx.core.app.CoreComponentFactory) from [androidx.core:core:1.0.1] AndroidManifest.xml:22:18-86
is also present at [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 value=(android.support.v4.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-24:19 to override.
但老实说,我不知道如何处理该错误消息...
你能告诉我添加工具栏的正确方法是什么吗?如果它启用了 androidx,你能指点我教程吗?反之亦然,如果它是通过 android.support.v7.widget,我需要做什么才能让它工作?
谢谢!
我想我找到了解决办法。
没有必要实施com.android.support:appcompat-v7:28.0.0
。而是使用
androidx.appcompat.widget.Toolbar
在java-文件中你需要添加
import androidx.appcompat.widget.Toolbar;
并使用
设置工具栏@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
但是,如果更有经验的人可以验证这个解决方案是正确的,我会很高兴。