我有一个包含四个片段的活动(MainActivity)(HomeFragment、callsFragment、chatsFragment、contactsFragment)。主活动只有一个用于放置HomeFragment的框架布局。虽然homefragment内部包含viewpager和底部导航视图,但在更改页面底部导航文本时
以下代码:
fragment\u主页。xml
<layout
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">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.jona.bottomnavviewpager.HomeFragment"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_above="@+id/bottom_navigation"
android:layout_alignParentTop="true"/>
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:itemBackground="@color/colorPrimary"
app:itemIconTint="@drawable/bottom_navigation_color_selector"
app:itemTextColor="@drawable/bottom_navigation_color_selector"
app:menu="@menu/menu_bottom_navigation"
android:layout_alignParentBottom="true"
/>
</RelativeLayout>
bottom\u navigation\u color\u选择器。xml
<?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/tab_checked" />
<item android:state_checked="false" android:color="@color/tab_unchecked" />
</selector>
menu\u bottom\u导航。xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_call"
android:icon="@drawable/ic_call"
android:title="@string/tab1"
/>
<item
android:id="@+id/action_chat"
android:icon="@drawable/ic_chat"
android:title="@string/tab2"
/>
<item
android:id="@+id/action_contact"
android:icon="@drawable/ic_contacts"
android:title="@string/tab3"
/>
</menu>
HomeFragment。Java语言
public class HomeFragment extends Fragment {
private final static String TAG = "FragmentRumah";
private MenuItem prevMenuItem;
public HomeFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//int argVal;
final FragmentHomeBinding binding = DataBindingUtil.inflate(inflater, R.layout.fragment_home, container, false);
View view = binding.getRoot();
setupViewPager(binding.viewpager);
binding.bottomNavigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.action_call:
binding.viewpager.setCurrentItem(0);
Log.d(TAG, "onNavigationItemSelected: action call");
break;
case R.id.action_chat:
binding.viewpager.setCurrentItem(1);
Log.d(TAG, "onNavigationItemSelected: action chat");
break;
case R.id.action_contact:
binding.viewpager.setCurrentItem(2);
Log.d(TAG, "onNavigationItemSelected: action contact");
break;
}
return false;
}
});
binding.viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
Log.d(TAG, "onPageScrolled");
}
@Override
public void onPageSelected(int position) {
Log.d(TAG, "onPageSelected");
if (prevMenuItem != null){
prevMenuItem.setChecked(false);
} else {
binding.bottomNavigation.getMenu().getItem(0).setChecked(false);
}
Log.d("page", "onPageSelected: "+position);
binding.bottomNavigation.getMenu().getItem(0).setChecked(true);
prevMenuItem = binding.bottomNavigation.getMenu().getItem(0);
}
@Override
public void onPageScrollStateChanged(int state) {
Log.d(TAG, "onPageScrollStateChanged");
}
});
return view;
}
private void setupViewPager(ViewPager viewpager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getFragmentManager());
adapter.addFragment(new callsFragment());
adapter.addFragment(new chatFragment());
adapter.addFragment(new contactsFragment());
viewpager.setAdapter(adapter);
}
}
我改变了这一点,在样式中添加了以下内容。xml
<item name="android:navigationBarColor">@color/customColor</item>
Tabbar 底部导航栏 1.4.8 优点: 此组件一般用于应用的底部导航,具有如下特点: 可以设置凸起的按钮,且是全端通用的 图标可以使用字体图标(内置图标和扩展图标)或者图片 可以动态切换菜单的数量以及配置 切换菜单之前,可以进行回调鉴权 可以设置角标 有效防止组件区域高度塌陷,无需给父元素额外的内边距或者外边距来避开导航的区域 缺点: 虽然优点很多,但是如果用此组件模拟tabbar页面的话依
setBarBottomLineColor 可通过该接口自定义导航栏底部细线的颜色,当颜色与导航栏相同时可达到隐藏的效果 使用方法 AlipayJSBridge.call("setBarBottomLineColor", { color: 16711688 }); 代码演示 <div style="padding-top:80px;"> <a href="javascript:void(
我想更改android手机本机底部导航的颜色。就像下面的图片一样,它是完全黑暗的。这真的有可能吗?如果是,我该怎么做? 非常感谢。
在我的应用程序中,我需要更改底部导航栏的颜色。我看了很多帖子,但没有找到解决办法。我正在使用appCompat库。 v21/样式。xml
本文向大家介绍Flutter实现底部导航栏,包括了Flutter实现底部导航栏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Flutter实现底部导航栏的具体代码,供大家参考,具体内容如下 效果 实现 先将自动生成的main.dart里面的代码删除, 创建app.dart作为首页的页面文件 创建today.dart、kb.dart、playground.dart三个页面文件作为ta
本文向大家介绍android实现底部导航栏,包括了android实现底部导航栏的使用技巧和注意事项,需要的朋友参考一下 底部导航栏我选择用FragmentTabHost+Fragment来实现,这个方法比较好用,代码量也不多 首先是开始的activity_main.xml 也可以直接在xml文件里面写 这xml文件就一个view加一个tab view用来显示碎片,tab用来放置底部按钮的数量 再