Android ActionBar отсутствует после расширения Appcompatactivity - PullRequest
0 голосов
/ 31 октября 2018

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

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

Вот мой код:

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

А вот и скриншот (вы видите, что ActionBar пропал).

enter image description here

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

Для остальной части Activities это работает. ActionBar is gone только при запуске внешней библиотеки Intent.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 18 января 2019

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

0 голосов
/ 31 октября 2018

Во-первых, проверьте вашу тему, это может быть как ниже ("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);
}
...