Tag: bottomnavigationview

如何禁用BottomNavigationView点击和触摸?

我想在一定条件下执行行为底部视图无法点击,如果底部视图项目被点击它不会导航到该项目,但仍然停留在当前项目

BottomNavigationView始终显示图标和文本标签

我从设计支持库版本25使用android.support.design.widget.BottomNavigationView compile ‘com.android.support:design:25.0.0’ 当在@ menu / bottom_navigation_main中只有三个动作时,它总是显示图标和文本标签。 当有三个以上的动作时,一直显示图标和文字标签的方法是什么?

如何根据选定的项目加载BottomNavigationView片段?

我有一个简单的应用程序写在Kotlin有一个BottomNavigationView。 这个想法是有一个单一的活动(MainActivity)与BottomNavigationView的每个选项卡加载片段。 我已经创建了一个片段,当选择一个选项卡(HomeFragment)时,我想加载一个片段,并且当活动选项卡更改时,已经在BottomNavigationView的图标下更改了文本。 现在我想在改变标签时膨胀/加载片段。 我怎么去做这个? MainActivity.kt: class MainActivity : AppCompatActivity() { private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item -> when (item.itemId) { R.id.navigation_enrollments -> { message.setText(R.string.title_enrollments) return@OnNavigationItemSelectedListener true } R.id.navigation_timeline -> { message.setText(R.string.title_timeline) return@OnNavigationItemSelectedListener true } R.id.navigation_home -> { message.setText(R.string.title_home) return@OnNavigationItemSelectedListener true } R.id.navigation_alerts -> { message.setText(R.string.title_alerts) return@OnNavigationItemSelectedListener true } R.id.navigation_profile -> { message.setText(R.string.title_profile) return@OnNavigationItemSelectedListener […]

BottomNavigationView上的徽章

我正在尝试在不使用任何库的情况下向BottomNavigationView项目添加徽章,但不知何故BottomNavigationView未显示徽章(custom_view) main_view.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.hrskrs.test.MainActivity"> <FrameLayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" /> <android.support.design.widget.BottomNavigationView android:id="@+id/bottom_navigation" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" app:itemBackground="@color/colorPrimary" app:itemIconTint="@color/colorAccent" app:itemTextColor="@color/colorPrimaryDark" app:menu="@menu/bottom_navigation_main" /> </RelativeLayout> bottom_navigation_menu.xml: <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/item_test" android:icon="@mipmap/ic_launcher" android:title="action1" app:showAsAction="always" /> <item android:enabled="true" android:icon="@mipmap/ic_launcher" android:title="action2" app:showAsAction="ifRoom" /> <item android:enabled="true" android:icon="@mipmap/ic_launcher" android:title="action3" app:showAsAction="ifRoom" /> </menu> 从AppCompatActivity扩展的活动: @Override […]

BottomNavigationView覆盖的RecyclerView

我尝试了谷歌支持库BottomNavigationView与我的片段Framelayout。 这是我的代码 <?xml version="1.0" encoding="utf-8"?> <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" android:fitsSystemWindows="true" tools:context="com.bottombarnavigation.MainActivity"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <include layout="@layout/toolbar"/> </android.support.design.widget.AppBarLayout> <include layout="@layout/content_main" /> <android.support.design.widget.BottomNavigationView android:background="#fcfcfc" android:id="@+id/bottom_navigation" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom|end" app:menu="@menu/bottom_navigation" /> </android.support.design.widget.CoordinatorLayout> 当我在片段内填充我的RecyclerView时,它的内容被BottomNavigationView覆盖。 我不知道为什么会发生这种情况。 我看通过其他人教程,它工作正常。 编辑这里是我的content_main.xml文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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" android:background="@android:color/white" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.bottombarnavigation.MainActivity" tools:showIn="@layout/activity_main"> <FrameLayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent"></FrameLayout> </RelativeLayout>

取消选中BottomNavigationView中没有虚拟物品或反射的所有物品

我正在尝试从设计库中使用BottomNavigationView。 除了我希望每个导航项目启动一个活动外,一切正常,因此我想取消选中导航栏中的所有项目,使它们看起来相同。 我已经尝试了几种解决方案,其中大部分都不起作用,而最后一种解决方案确实有效,但感觉非常不好。 首先我做了这个: ViewGroup nav = (ViewGroup) bottomNav; for(int i=0; i < nav.getChildCount(); i++) { nav.getChildAt(i).setSelected(false); } 这似乎什么都不做。 然后我试着: int size = bottomNav.getMenu().size(); for (int i = 0; i < size; i++) { bottomNav.getMenu().getItem(i).setChecked(false); } 其中只有最后一项检查,而不是第一个。 最后我尝试在菜单中添加一个虚拟物品, bottomNav.getMenu().findItem(R.id.dummmy_item).setChecked(true); bottomNav.findViewById(R.id.dummmy_item).setVisibility(View.GONE); 这几乎可以工作,但它隐藏了下面的标题,这对我的情况来说很重要。 然后我找到了这个答案: https : //stackoverflow.com/a/41372325/4888701并编辑我的上述解决方案,包括。 具体而言,我添加了proguard规则,并使用了确切的帮助类,并调用该方法。 它看起来是正确的,似乎工作。 但是对我来说感觉很不好,因为: 我正在使用一个虚拟菜单项目,以便不能查看可见项目 它增加了相当多的代码应该是一个小的视觉修正。 我已经读过,如果可能,应该避免反思。 有没有其他的,最好是简单的方法来实现这个,或者这是最好的,我们有当前版本的图书馆? (作为一个便笺,我想知道在这个解决方案中的proguard规则是否有必要,它是做什么的?我对proguard一无所知,但是这个项目是从其他人启用的。

如何在Kotlin中设置默认的BottomNavigationView选项卡?

我一直在尝试使用广泛接受的java方法在我的onCreate(bottomNavigationView.setSelectedItemId(R.id.item_id))中设置我的默认选择选项卡,但这似乎不适用于Kotlin。 此外,每次选择菜单项时,加载到每个选定项上的片段似乎都会加载,并且在上一个片段中绘制它们的内容。 我怎样才能为我的BottomNavigationView设置默认选择的选项卡? 也是我正确地加载片段或是我的代码没有正确地处理碎片之前加载另一个? MainActivity.kt class MainActivity : AppCompatActivity() { private val SELECTED_ITEM = "arg_selected_item" private var mBottomNav: BottomNavigationView? = null private var mSelectedItem: Int = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) mBottomNav = findViewById(R.id.navigation) as BottomNavigationView mBottomNav!!.setOnNavigationItemSelectedListener { item -> selectFragment(item) true } val selectedItem: MenuItem if (savedInstanceState != null) { mSelectedItem […]