1

У меня есть несколько фрагментов в действии и на элементе ящика. Я заменяю фрагмент. В одном фрагменте у меня есть ListView. В этом списке пользователь может выбрать несколько элементов. У меня проблема, когда при выборе элемента списка добавляется еще одна панель действий. Я не хочу эту панель действий.Android: Не удается скрыть панель инструментов или панель действий

Вот мой скриншот

enter image description here

Я хотел объединить их или панель инструментов скрыть во время выбора нескольких. как мы можем решить эту проблему

Вот мой код

BookingFragment.java

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    View v = inflater.inflate(R.layout.fragment_booking, container, false); 
    setHasOptionsMenu(true); 
    lv_itemRateList = (ListView) v.findViewById(R.id.lv_itemRateList); 
    lv_itemRateList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); 

    lv_itemRateList.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() { 
     @Override 
     public void onItemCheckedStateChanged(ActionMode actionMode, int i, long l, boolean b) { 
      final int checkedCount = lv_itemRateList.getCheckedItemCount(); 
      actionMode.setTitle(checkedCount + " Selected"); 
      rateListAdapter.toggleSelection(i); 
     } 

     @Override 
     public boolean onCreateActionMode(ActionMode actionMode, Menu menu) { 
      actionMode.getMenuInflater().inflate(R.menu.context_main, menu); 
      return true; 
     } 

     @Override 
     public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) { 
      return false; 
     } 

     @Override 
     public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) { 
      switch (menuItem.getItemId()) { 
       case R.id.menu_email: 
        SparseBooleanArray selected = rateListAdapter.getSelectedIds(); 
        ArrayList<RateList> temp = new ArrayList<RateList>(); 
        for (int i = 0; i < selected.size(); i++) { 
         temp.add(rateListAdapter.getItem(selected.keyAt(i))); 
        } 
        Log.e("array",""+temp); 
        //to do code. 
        actionMode.finish(); 
        return true; 
       default: 
        return false; 
      } 
     } 

     @Override 
     public void onDestroyActionMode(ActionMode actionMode) { 
      rateListAdapter.removeSelection(); 
     } 
    }); 

    return v; 
} 

Вот моя деятельность тема

styles.xml

<style name="myTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="windowActionModeOverlay">true</item> 
</style> 

, пожалуйста, помогите.

+0

вы можете показать мне код активности ??? –

+0

в действии нет ничего хорошего, у меня есть панель инструментов и навигация, что это. –

+0

Использовать экземпляр активности AppCompect. и удалить код панели инструментов из xml –

ответ

1

Вы можете попробовать что-то вроде , чтобы скрыть getActivity().getActionBar().hide(); Чтобы показать getActivity().getActionBar().show();

+0

Я не хочу скрывать его навсегда. Только когда пользователь выбирает элемент списка. Если пользователь ничего не выбирает, то время захочет эту панель инструментов. –

+0

@AshishKudale вы можете использовать как getActivity.getActionBar().show() – Janmejoy

+0

onlistItemOnClick скрыть ActionBar еще сохранить его видимым – Janmejoy

1

Для скрытия панели инструментов вы можете просто сделать:.

getSupportActionBar() скрыть();

+0

Я не хочу скрывать его навсегда. Только когда пользователь выбирает элемент списка. Если пользователь ничего не выбирает, то время захочет эту панель инструментов. –

0

просто удалить код на панели инструментов с вашего XML и расширить базовый класс активности с активностью

0

Вы должны сделать вашу тему, как this.And это рабочий код. Это поможет вам.

<resources> 
    <style name="MultipleImageSelectTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="colorPrimary">@color/multiple_image_select_primary</item> 
     <item name="colorPrimaryDark">@color/multiple_image_select_primaryDark</item> 
     <item name="colorAccent">@color/multiple_image_select_accent</item> 

     <item name="actionModeStyle">@style/CustomActionModeStyle</item> 
     <item name="windowActionModeOverlay">true</item> 
    </style> 

    <style name="CustomActionModeStyle" parent="Base.Widget.AppCompat.ActionMode"> 
     <item name="background">@color/multiple_image_select_primary</item> 
    </style> 

    <style name="CustomToolbarTheme" parent="Base.ThemeOverlay.AppCompat.ActionBar"> 
     <item name="android:textColorPrimary">@color/multiple_image_select_toolbarPrimaryText</item> 
    </style> 
</resources> 
0

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

app:layout_scrollFlags="enterAlways|snap" 

в вашем activity_main.xml. Надеюсь это поможет!

Пример

<android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:minHeight="?attr/actionBarSize" 
     android:elevation="4dp" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     app:layout_scrollFlags="enterAlways|snap" /> 

Это то, что ваш код будет выглядеть после добавления его

Смежные вопросы