我正在使用androidx,并且试图在Mainactivity中设置工具栏,以便可以添加菜单项。
我到处搜索过,但似乎找不到解决方法
尝试过implementation 'com.android.support:appcompat-v7:28.0.0'
Mainactivity.class
import androidx.appcompat.widget.Toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
activity_main.xml
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
style="@style/HeaderBar"
app:layout_scrollFlags="scroll|enterAlways" />
styles.xml
<style name="HeaderBar">
<item name="android:background">@color/colorPrimaryDark</item>
</style>
答案 0 :(得分:2)
问题必须来自以下事实:您在MainActivity类中引用的工具栏是(android.widget)中的工具栏小部件,如以下链接所示:
Click to see the image for the wrong one
代替(androidx.appcompact.widget)中的工具栏,如以下链接所示:
Click to see the image for the correct one
因此,在MainActivity类中键入“工具栏”时,请确保放慢速度并检查您所引用的工具栏是否为(androidx.appcompat.widget)。
答案 1 :(得分:1)
我遇到了同样的问题。我在Kotlin中使用。
与“ com.google.android.material.material:1.1.0-alpha06”集成
fragment.xml
<androidx.appcompat.widget.Toolbar>
android:id="@+id/toolbar"
...
</androidx.appcompat.widget.Toolbar>
片段
activity?.setActionBar(toolbar)
错误: setActionBar(必填:android.widget.Toolbar),但我在Kotlin中找不到setSupportActionBar
如果我更改小部件
<android.widget.Toolbar>
android:id="@+id/toolbar"
...
</android.widget.Toolbar>
片段:确定
activity?.setActionBar(toolbar)
答案 2 :(得分:1)
我在文档中找不到太多,它通过以下方式为我工作:
setSupportActionBar()
方法中使用onCreate()
代替<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
//your views here
</Toolbar>
</com.google.android.material.appbar.AppBarLayout>
在您的layout.xml中
android.widget.Toolbar toolbar = findViewById(R.id.toolbar);
setActionBar(toolbar);
活动中
android:theme="@style/Theme.AppCompat.NoActionBar"
在AndroidManifest.xml中声明了您的活动
{{1}}
答案 3 :(得分:0)
在创建扩展了FragmentActivity (androidx.appcompat.app.FragmentActivity)
的Google Maps Activity时,我也遇到了这个问题。为了解决这个问题,
确保您的活动扩展了AppCompatActivity (androidx.appcompat.app.AppCompatActivity)
。
还要检查您的gradle.properties
并确保其中列出了android.useAndroidX=true
和android.enableJetifier=true
。