标签: bottomnavigationview

Design BottomNavigationView - 在代码中设置背景颜色

有没有办法将BottomNavigationView代码中新设计库的背景颜色设置为自定义颜色值而不是颜色资源?任何"技巧"可能吗?

我目前的解决方案

  • 我让BottomNavigationView透明
  • 我在后面添加了第二个视图 bottomNavigationView
  • 我更新了这个视图的背景

但这看起来很丑陋,特别是因为我必须使用自定义行为为背景视图与BottomNavigationView父级中的CoordinatorLayout... 进行并行动画...

android android-support-library bottomnavigationview

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

BottomNavigationView清晰选择

我想清除BottomNavigationView的选择,因此不会选择任何项目.

我有一个辅助工具方法:

public static void clearSelection(BottomNavigationView view) {
    final BottomNavigationMenuView menuView = (BottomNavigationMenuView) view.getChildAt(0);
    for (int i = 0; i < menuView.getChildCount(); i++) {
        BottomNavigationItemView item = (BottomNavigationItemView) menuView.getChildAt(i);
        item.setChecked(false);
    }
}
Run Code Online (Sandbox Code Playgroud)

这种工作方式,但不会将项目的颜色重置为未选中的项目(仅删除凸起的动画并规范化字体大小).

要设置BottomVanigationItemView颜色,我使用颜色选择器根据选中的状态设置颜色:

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:state_checked="true"
        android:color="@color/colorPrimaryLight" />

    <item android:color="@color/colorPrimaryLightTransparent" />
</selector>
Run Code Online (Sandbox Code Playgroud)

我试过了:

item.invalidate();
menuView.invalidate();
Run Code Online (Sandbox Code Playgroud)

那没用.如何强制视图根据颜色选择器重置颜色值?

java android bottomnavigationview

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

如何更改底部导航栏点击动画的颜色?

正如您在此gif中看到的那样:https : //gyazo.com/fc2f8e8ae9fbdae1b06d88336e76bc05

轻按图标时,将播放绿色的动画。默认情况下,此颜色为灰色。如何将其更改为其他颜色?

android bottomnavigationview

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

在BottomNavigationView中的片段之间切换

我正在使用带有底部导航视图的简单应用程序。我有3个片段(布局和Java)。我有在我的MainActivity.java中声明的BottonNavigationView。我的bottonnavigation有3个项目,分别是3个片段。因此,在我的MainActivity.java中,当我选择一个项目时,它将开始一个片段。因此,当我再次选择另一个项目时,什么也没有发生,因为在Java片段中我需要声明BottonNavigationView,但是我不知道如何设置它以将实际片段与另一个片段切换。我尝试了此链接,但没有成功:https : //developer.android.com/training/basics/fragments/fragment-ui.html

对不起,我的英语不好

这里的代码:

主要活动

 @Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
    Fragment selectedFragment = null;
    switch (item.getItemId()) {
        case R.id.navigation_home:
            selectedFragment = HomeFragment.newInstance();
            break;
        case R.id.navigation_dashboard:
            selectedFragment = DashboardFragment.newInstance();
            break;
        case R.id.navigation_notifications:
            selectedFragment = NotificationsFragment.newInstance();
            break;
    }
    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
    transaction.replace(R.id.content, selectedFragment);
    transaction.commit();
    return true;
}
Run Code Online (Sandbox Code Playgroud)

片段Java示例

public class HomeFragment extends Fragment {
public static HomeFragment newInstance() {
HomeFragment fragment = new HomeFragment();
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { …
Run Code Online (Sandbox Code Playgroud)

android android-fragments bottomnavigationview

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

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
查看次数

颤振更新BottomNavigationBar

我正在将一个BottomNavigationBar与一个TabController一起使用。通过单击BottomNavigationBar的不同选项卡,TabView可以更改内容。但是,如果我在TabView上滑动以切换到另一个视图/选项卡,则BottomNavigationBar不会更新为我滑动至的选项卡。我已经在TabController中添加了一个侦听器以检测更改。但是,如何以编程方式更新BottomNavigationBar以反映更改?

dart flutter bottomnavigationview

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

在BottomNavigationView上为选定的图标设置动画

我正在寻找我目前在我的底形游览视图中使用的Vectordrawablawables,当为猫头鹰应用程序的本材料产品学习时选择了一个选项卡时。但是,与工具栏视图不同,当我使用 MenuItem.getIcon() 获取图标时,将其转换为 AnimatedVectorDrawable 并调用 animate() 方法,没有动画。

我想知道我是否可以做些什么来实现这一点,这是否可能包含在稳定的 Material Components 库中,或者我是否最好创建一个扩展 BottomNavigationView 类的自定义视图。

android material-design bottomnavigationview material-components material-components-android

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

如何在颤振中添加标签顶侧和底侧

顶部选项卡仅显示主页,它们通过滚动或点击显示 3 个不同的页面,以及整个应用程序(如菜单)的底部选项卡。

当我编写代码时,我得到如下图所示的视图,但我无法点击或重定向页面。

导航代码我只给出了顶部或底部选项卡,而不是两个选项卡。

在此处输入图片说明

主页.dart

  class _HomePageState extends State<HomePage> with SingleTickerProviderStateMixin {

  TabController tabController;
  //TabController bottomController;
  Icon searchBtn = new Icon(Icons.search);
  Widget appBarTitle = new Text('Invoices');

  @override
  void initState(){
    super.initState();
    tabController = new TabController(vsync: this, length: 3);
    //bottomController = new TabController(vsync: this, length: 4);
  }

  @override
  void dispose(){
    tabController.dispose();
    //bottomController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      color: Colors.purpleAccent,
      debugShowCheckedModeBanner: false,
      home: DefaultTabController(
        length: 3,
      child:Scaffold(
        appBar: new AppBar(
          centerTitle: false,
          title: appBarTitle,
          backgroundColor: Color(0xFF832685),
          actions: …
Run Code Online (Sandbox Code Playgroud)

tabs tabbar flutter bottomnavigationview

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

Android底部导航活动在onCreate中给出空指针异常

我在我的项目中添加了一个底部导航活动,但是当我开始相关活动时,它给出了一个空指针异常。

它说异常是在第 28 行触发的

在 lk.apiit.eea.mobile.Activities.CompanyProfile.onCreate(CompanyProfile.java:28)

以下是异常和代码请帮我解决这个问题..谢谢

java.lang.RuntimeException: Unable to start activity ComponentInfo{lk.apiit.eea.mobile/lk.apiit.eea.mobile.Activities.CompanyProfile}: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2720)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2781)
    at android.app.ActivityThread.-wrap12(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1508)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:241)
    at android.app.ActivityThread.main(ActivityThread.java:6274)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference
    at androidx.navigation.ui.ActionBarOnDestinationChangedListener.setTitle(ActionBarOnDestinationChangedListener.java:48)
    at androidx.navigation.ui.AbstractAppBarOnDestinationChangedListener.onDestinationChanged(AbstractAppBarOnDestinationChangedListener.java:100)
    at androidx.navigation.NavController.addOnDestinationChangedListener(NavController.java:218)
    at androidx.navigation.ui.NavigationUI.setupActionBarWithNavController(NavigationUI.java:220)
    at lk.apiit.eea.mobile.Activities.CompanyProfile.onCreate(CompanyProfile.java:28)
    at android.app.Activity.performCreate(Activity.java:6720)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2673)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2781) …
Run Code Online (Sandbox Code Playgroud)

android appbar nullpointerexception android-studio bottomnavigationview

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

Flow、Cicerone、Fragnav、Simple-stack 有哪些特点以及何时使用它们?

我在我的应用程序中使用 BottomNavigationView 和 3 个选项卡。我想实现类似导航的 Instagram,保存每个部分片段状态。首先我使用导航组件,但很难保存每个选项卡(部分)的状态。然后我找到了一些库,比如 flow、cicerone、fragnav、simple-stack。

flow、cicerone、fragnav、simple-stack 的特点是什么以及何时使用它们?

我有 2 个活动和 MainActivity。Mvvm 架构、dagger2、kotlin

android kotlin bottomnavigationview

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