卸下支持Android设计的导航抽屉滚动条?

问题描述 投票:11回答:4

我刚刚更新了支持设计库从22.2.1至23.0.1,并立即注意到了滚动条的抽屉式导航的存在。我试图用

android:scrollbars="none"

但是,这并没有解决它。是否有任何其他的方式来删除滚动条?

android scrollbar navigation-drawer drawerlayout androiddesignsupport
4个回答
26
投票

不幸的是,滚动条在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);
        }
    }
}

8
投票

您还可以使用下面的风格在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>

0
投票

我试着在科特林这样做,希望这将是一个帮助。第一,创建不同的片段,你想之后,创建将被用于片段加载到活动功能的任何导航。

    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();

        }

第一VAL片段= fManager.findFragmentByTag(标签),这将搜索如果片段已经被加载然后else语句将被执行,预装的片段将被显示,但如果我们不通过则loadFragment参数包含片段要加载然后if语句将被执行,而加载传递片段。


0
投票

你可以在风格用它apptheme:

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

© www.soinside.com 2019 - 2024. All rights reserved.