Android ActionBar отсутствует после расширения активности приложений

Недавно я обновил свое приложение, расширив Appcompatactivity в моем Activities. С тех пор Actionbar исчезает, когда я запускаю внешнюю библиотеку Intent.

Например, я использую HockeyApp SDK для запуска их FeedbackActivity

Вот мой код:

FeedbackManager.showFeedbackActivity(this, Uri.fromFile(file));

А вот скриншот (видно, что ActionBar больше нет).

введите здесь описание изображения

Раньше это работало, пока я не начал расширять Appcompatactivity.

Для остальных Activities это работает. ActionBar is gone только когда запускаю внешнюю библиотеку Intent.

Любые идеи?


person Ale    schedule 31.10.2018    source источник


Ответы (2)


Во-первых, проверьте свою тему, она может быть такой, как показано ниже ("NoActionBar"). Тогда панель действий не появляется. Если это ваша проблема. пожалуйста, добавьте подходящую тему для вашего приложения

 <application
    android:theme="@style/Theme.AppCompat.Light.NoActionBar"
    />

если ваша тема не является проблемой, вы можете добавить нижеприведенный контент в свой файл XML. (добавьте это как первый дочерний элемент вашего файла XML)

<android.support.v7.widget.Toolbar
   android:id="@+id/my_toolbar"
   android:layout_width="match_parent"
   android:layout_height="?attr/actionBarSize"
   android:background="?attr/colorPrimary"
   android:elevation="4dp"
   android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
   app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

и добавьте ниже содержимое в свою деятельность по методу создания

protected void onCreate(Bundle savedInstanceState) {
    .......
    Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
    setSupportActionBar(myToolbar);
}
person PushpikaWan    schedule 31.10.2018
comment
@Але, в чем сейчас ошибка? одинаковые или разные. Убедитесь, что вы добавили панель инструментов в качестве первого дочернего элемента xml. - person PushpikaWan; 05.11.2018
comment
ваше решение правильное, но оно не работает вне контекста, потому что мы запускаем внешнее намерение. Когда мы запускаем FeedbackManager.showFeedbackActivity(this, Uri.fromFile(file));, открывается новый Activity (из HockeyApp SDK), но мы не можем изменить его макет. - person Ale; 07.11.2018

Причина, вероятно, в том, что FeedbackManager.showFeedbackActivity(this, Uri.fromFile(file)) открывает новый класс FeedbackActivity.class, который является подклассом Activity.class вместо AppCompatActivity.class, поэтому он не может отображать панель действий. Вот ссылка https://stackoverflow.com/questions/30681918/nullpointerexception-with-actionbar-setdisplayhomeasupenabledboolean-on-a-nu, которая объясняет некоторые причины.

person SeneyLy    schedule 18.01.2019