标签: android-bottom-nav-view

如何从底部导航视图更改特定图标图像

我需要在我的 android 应用程序中实现底部导航视图。中间的图标需要是图像,即公司徽标。但是当我运行该应用程序时,它只出现一个灰色填充的圆形图标。上面的图片显示了我想要的和我得到的。

我想要的是: 在此处输入图片说明

我得到的: 在此处输入图片说明

我已经在这个网站上尝试过其他问题,但是每个答案都告诉我们使用可绘制对象更改 XML 中的 iconTintList,但中心图标是一个具有多种颜色的矢量。

当我尝试将 null 设置为 setIconTintList 方法时,适用于中间图标,但其他图标也会更改为原始颜色。

//This doesn't work to other icons, only for the middle one 
mBottomNav.setItemIconTintList(null);
Run Code Online (Sandbox Code Playgroud)

我还尝试获取菜单并仅为中间的设置图标色调列表,就像上面的代码一样,但也不起作用。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    mBottomNav.getMenu().findItem(R.id.nav_buy).setIconTintList(null);
}
Run Code Online (Sandbox Code Playgroud)

这是 XML 实现:

    <android.support.design.widget.BottomNavigationView
        android:id="@+id/bottomNavigationView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:background="@color/kmv_background"
        app:itemIconTint="@drawable/bottom_nav_item_color"
        app:itemTextColor="@drawable/bottom_nav_item_color"
        app:labelVisibilityMode="labeled"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:menu="@menu/bottom_navigation" />
Run Code Online (Sandbox Code Playgroud)

这是java实现:

mBottomNav = findViewById(R.id.bottomNavigationView);
mBottomNav.setOnNavigationItemSelectedListener(this);
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

android bottomnavigationview android-bottom-nav-view

5
推荐指数
1
解决办法
4381
查看次数

Android底部导航查看项目文本颜色?

我开始研究Android底部导航视图.但我面临一个问题.如果我向底部导航视图添加了5个项目,则只显示项目文本的选定项目.如果我添加3项,它工作正常.请告诉我如何显示所有5个项目的项目文本.先感谢您.

menu.xml文件:

<menu 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"
    tools:context="com.reloadapp.reload.activity.IconTabsActivity">
    <item
        android:id="@+id/action_favorites"
        android:enabled="true"
        android:icon="@drawable/home_40"
        android:title="Home"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/action_schedules"
        android:enabled="true"
        android:icon="@drawable/profile_40"
        android:title="Profile"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/action_music"
        android:enabled="true"
        android:icon="@drawable/reload_40"
        android:title="Reload cash"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/action_musi"
        android:enabled="true"
        android:icon="@drawable/notifications"
        android:title="Notifications"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/action_mus"
        android:enabled="true"
        android:icon="@drawable/menu_40"
        android:title="More"
        app:showAsAction="ifRoom" />
</menu>
Run Code Online (Sandbox Code Playgroud)

依赖:编译'com.android.support:appcompat-v7:25.0.1'compile'c​​om.android.support:design:25.0.0'

 <android.support.design.widget.BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:itemBackground="@color/textColorPrimary"
        app:menu="@menu/menu_icon_tabs"
        app:itemIconTint="@color/colorPrimary"
        app:itemTextColor="@color/colorPrimary"
        android:layout_alignParentBottom="true">
    </android.support.design.widget.BottomNavigationView>
Run Code Online (Sandbox Code Playgroud)

android android-menu android-support-library android-bottom-nav-view

4
推荐指数
1
解决办法
6386
查看次数

如何制作BottomNavigationView 水平方向的图标和标签?

我想BottomNavigationView水平对齐的图标和标签。像这样的东西 在此处输入图片说明

默认方向为

在此处输入图片说明

我应该为菜单项制作自定义布局还是有任何简单的方法?

android bottomnavigationview android-bottom-nav-view

3
推荐指数
1
解决办法
580
查看次数

在Android底部导航栏中更改所选项目后面区域的背景颜色

是否可以更改底部导航栏所选项目后面的栏特定部分的背景颜色,或支持此功能的任何第三方库?

是否还可以在所选项目的底部添加突出显示的栏,如下图所示?

见下面的截图:

底部导航栏示例

android android-layout android-bottomnav android-bottom-nav-view

1
推荐指数
1
解决办法
2015
查看次数

BottomNavigation 初始 setCurrentItem 未显示片段并且重新启动片段失败

我有一个 Main Activity,它使用 TabSelectedListener 来显示 AHBottomNavigation 菜单的片段。名为“FirstFragment”的片段包含一个 FragmentPagerAdapter,它允许用户在两​​个选项卡之间滑动,每个选项卡都有自己的片段,称为 FirstTabInFirstFragmentFragment 和 SecondTabInFirstFragmentFragment(为简单起见重新命名)。

我的问题是:

一种)。启动 Main Activity 时,会选择“First”底部导航菜单项,但不会启动“FirstFragment”。因此,它以空白屏幕显示选择的正确项目。如果我再次点击菜单项,它只会启动第一个片段。

b)。一旦 FirstFragment 被正确启动并显示在屏幕上(通过 a 中的临时修复),如果我选择一个不同的菜单项(即导航到 SecondFragment)然后再次选择 FirstFragment 的菜单项,里面的两个选项卡它是空白的。此外,两个标签的片段之间的滑动不起作用并被“卡住”,因此您必须将其一直拉到一侧或一直拉到另一侧。

希望我已经清楚地解释了我的问题 - 如果我遗漏了什么,我可以提供更多细节。
请注意,我正在使用com.aurelhubert.ahbottomnavigation.AHBottomNavigation
以下是相关文件:

主活动.java :

public class MainActivity extends AppCompatActivity{

private AHBottomNavigationAdapter navigationAdapter;
private AHBottomNavigationViewPager viewPager;
private AHBottomNavigation bottomNavigation;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Add menu items to bar
    bottomNavigation = (AHBottomNavigation) findViewById(R.id.bottom_navigation);
    this.createNavItems();

    bottomNavigation.setOnTabSelectedListener(new AHBottomNavigation.OnTabSelectedListener() {
        @Override
        public boolean onTabSelected(int position, boolean wasSelected) {

            //show fragment
            if (position==0) …
Run Code Online (Sandbox Code Playgroud)

android android-fragments bottomnavigationview android-bottomnav android-bottom-nav-view

1
推荐指数
1
解决办法
2160
查看次数

底部导航视图打开新活动

我正在尝试使用底部导航视图在单击时打开另一个活动.出于某种原因,我在最后一行收到错误,应该定义点击功能.我在另一个项目上测试过,它运行得很好.

这是我的活动的结尾部分:

private BottomNavigationView.OnNavigationItemSelectedListener 
mOnNavigationItemSelectedListener
        = new BottomNavigationView.OnNavigationItemSelectedListener() {

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
            case R.id.navigation_home:
                Intent kampIntent = new Intent(SortimentActivity.this, CampaignActivity.class);
                startActivity(kampIntent);
                mTextMessage.setText(R.string.title_home);
                break;
            case R.id.navigation_dashboard:
                mTextMessage.setText(R.string.title_dashboard);
                break;
        }
        return false;


        BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
    }
Run Code Online (Sandbox Code Playgroud)

我在另一个项目中尝试了完全相同的代码,但它确实有效.我在这里得到的错误

'无法解析符号'.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);

关于这里出了什么问题的任何想法?

java android android-activity android-bottom-nav-view

0
推荐指数
1
解决办法
214
查看次数