2016-06-26 3 views
1

Так я реализовал разборный панель инструментов внутри моего приложения и в классе Java я переопределить onCreateOptionsMenu и onOptionsItemSelected как это:Android складные иконки меню панели инструментов исчезающие

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.menu_details, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.action_share: 
       break; 
      case R.id.action_addToFavorites: 
       break; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

И теперь, когда я открываю свою деятельность, я могу увидеть меню значки и делать с ними все до тех пор, пока панель инструментов не будет обрушена. Когда пользователь блокирует панель инструментов, значки исчезают.

Вторая проблема, с использованием метода getSupportActionBar().setDisplayHomeAsUpEnabled(true); я получить обратно кнопки черного цвета вместо белого, так что теперь я использую этот метод:

tToolbar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_action_navigation_arrow_back)); 

Мой вопрос для этой проблемы заключается в том, как обрабатывать событие нажатия для этот значок навигации? Этот значок также исчезает, когда панель инструментов затухает и оставляет левую прокладку, как она есть, но это не так.

Вот мой код:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.darioradecic.topmusicandartists.Details"> 


    <android.support.design.widget.AppBarLayout 
     android:id="@+id/MyAppbar" 
     android:layout_width="match_parent" 
     android:layout_height="256dp" 
     android:fitsSystemWindows="true"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapse_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:fitsSystemWindows="true" 
      app:contentScrim="@color/colorPrimary" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <com.android.volley.toolbox.NetworkImageView 
       android:id="@+id/imageViewDetailsTopGlobalSongs" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:fitsSystemWindows="true" 
       android:scaleType="centerCrop" 
       app:layout_collapseMode="pin" /> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/tToolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 

       /> 
     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.widget.NestedScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="fill_vertical" 
     android:padding="10dp" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

Что я делаю неправильно?

ответ

2

Вы используете старую версию библиотеки поддержки (23.0.1)? Если да, то посмотрите, не исчезли ли значки с последней версией.

Чтобы использовать кнопку белого цвета обратно, добавьте в style.xml

<style name="MyToolbarLight" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="colorControlNormal">@color/white</item> 
</style> 

Тогда в макете XML, добавьте стиль.

<android.support.v7.widget.Toolbar 
android:id="@+id/tToolbar" 
android:layout_width="match_parent" 
android:layout_height="?attr/actionBarSize" 
app:theme="@style/MyToolbarLight" 
/> 

Ваш значок исчезает режим, потому что вы не установили коллапс на панель инструментов, так что не остается фиксированным при запуске прокрутки, Simpy добавить к вашей панели инструментов:

app:layout_collapseMode="pin" 

Примечания : если вы в том числе макет панели инструментов необходимо указать (или повторить) значения ширины и высоты, collapseMode не будет достаточно:

<include layout="@layout/view_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     app:layout_collapseMode="pin"/> 
+0

Я использую LA test 23.2.1 библиотека поддержки и настройка пользовательского стиля решили проблему с черной кнопкой со стрелкой вниз, но значки все еще исчезают, когда панель инструментов затухает – DaxHR

+0

см. мой отредактированный ответ – randy

+0

Это работает отлично! Спасибо, сэр!! – DaxHR