Удалить полосу прокрутки из навигационного ящика поддержки Android?

Я только что обновил библиотеку дизайна поддержки с 22.2.1 до 23.0.1 и сразу заметил наличие полосы прокрутки в панели навигации. я пытался использовать

android:scrollbars="none"

Но это не исправило. Есть ли другой способ убрать полосу прокрутки?


person qwertz    schedule 19.09.2015    source источник
comment
Могу я спросить, нашли ли вы недавнюю статью о том, как реализовать навигационный ящик? Многим статьям не меньше года.   -  person Stephane    schedule 26.09.2015
comment
@StephaneEybert Я только что скачал пример Cheesesquare Криса Бейнса с Github и скопировал его оттуда.   -  person qwertz    schedule 26.09.2015


Ответы (4)


К сожалению, полоса прокрутки установлена ​​в макете NavigationMenuView, а не в макете NavigationView, по этой причине, если вы используете android:scrollbars="none", полоса прокрутки все еще присутствует.

Вы можете сделать это программно, вызвав этот метод:

private void disableNavigationViewScrollbars(NavigationView navigationView) {
    if (navigationView != null) {
        NavigationMenuView navigationMenuView = (NavigationMenuView) navigationView.getChildAt(0);
        if (navigationMenuView != null) {
            navigationMenuView.setVerticalScrollBarEnabled(false);
        }
    }
}
person Mattia Maestrini    schedule 20.09.2015

Вы также можете использовать следующий стиль в своем style.xml

<item name="android:scrollbarThumbVertical">@color/transparent</item>
if you don't have a transparent color defined in colors.xml, use the android library "transparent" with: <item name="android:scrollbarThumbVertical">@android:color/transparent</item>
person Nik    schedule 10.07.2016

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

    when (item.getItemId()) {
            R.id.home -> {
                //this is the name of the method I am using for adding fragments 
                //with bottom navigation bar you can use it with any type o navigation.
                loadFragment(getString(R.string.home_fragment), HomeFragment());
                appBar.title = "Home"
                return true
            }
            R.id.jobs -> {
                loadFragment(getString(R.string.jobs_fragment), JobsFragment());
                appBar.title = "Jobs"
                return true
            }

после этого вот метод

        private fun loadFragment(tag: String,loadFragment: Fragment) {
           val fManager = supportFragmentManager
            val fTransaction = fManager.beginTransaction()
            val fragment = fManager.findFragmentByTag(tag)

            if (fragment == null) {
                fTransaction.replace(R.id.activity_main_content_main, loadFragment,tag);
            } else { // re-use the old fragment
                fTransaction.replace(R.id.activity_main_content_main, fragment, tag);
            }

            fTransaction.addToBackStack(tag);
            fTransaction.commit();

        }

first val fragment = fManager.findFragmentByTag(tag) это будет искать, если фрагмент уже загружен, тогда будет выполнен оператор else и будет отображаться предварительно загруженный фрагмент, но если нет, то переданный нами параметр loadFragment содержит фрагмент вы хотите загрузить тогда, если будет выполнен оператор, который загрузит переданный фрагмент.

person Shubham Sharma    schedule 08.02.2019

вы можете использовать его в apptheme в стиле:

<item name="android:scrollbarThumbVertical">@android:color/transparent</item>

person mahsa k    schedule 13.05.2019