Правильный способ реализации панели инструментов в действии с использованием Android Studio - PullRequest
0 голосов
/ 10 ноября 2019

У меня проблема с добавлением панели инструментов в мое приложение. Я начал с пустой деятельности. Используя этот учебник https://developer.android.com/training/appbar/setting-up и этот учебник 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. Тем не менее, установка обоих на ложь дает мне следующую ошибку:

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, что мне нужно сделать, чтобы это работало?

Спасибо!

1 Ответ

0 голосов
/ 12 ноября 2019

Я думаю, я нашел решение. Нет необходимости реализовывать 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);
}

Однако я был бы радесли кто-то более опытный может проверить это решение, чтобы быть правильным.

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