当前位置: 首页 > news >正文

珠海做网站设计有哪些市场调研公司

珠海做网站设计有哪些,市场调研公司,舟山seo网络优化招聘,二手房目录 一、BottomNavigationBar介绍 二、BottomNavigationBar的常用方法及其常用类 (一)、常用方法 1. 添加菜单项 2. 移除菜单项 3. 设置选中监听器 4. 设置当前选中项 5. 设置徽章 6. 样式和颜色定制 7. 动画效果 8. 隐藏底部导航栏。 9、设…

目录

一、BottomNavigationBar介绍

二、BottomNavigationBar的常用方法及其常用类

(一)、常用方法

1. 添加菜单项

2. 移除菜单项

3. 设置选中监听器

4. 设置当前选中项 

5. 设置徽章

 6. 样式和颜色定制

7. 动画效果 

8. 隐藏底部导航栏。

 9、设置模式

10.初始化 bottomNavigation

 (二)、常用类

 TextBadgeItem常用方法:

 ShapeBadgeItem常用方法:

三、bottomNavigation的使用例子 

一、BottomNavigationBar介绍

        BottomNavigationBar是一个用于Android应用程序的底部导航栏控件,通常用于在应用程序的不同页面之间进行快速切换。它提供了一种直观且易于使用的导航方式,使用户可以轻松访问应用程序的各个模块。

依赖包:

implementation 'com.ashokvarma.android:bottom-navigation-bar:2.0.4'

二、BottomNavigationBar的常用方法及其常用类

(一)、常用方法

        BottomNavigationBar提供了一系列常用的方法,用于定制和管理底部导航栏的外观和行为。以下是BottomNavigationBar的常用方法及其调用例子的详细介绍:

1. 添加菜单项

  • addItem(BottomNavigationItem item):向导航栏添加一个菜单项。

2. 移除菜单项

  • removeItem(int position):从导航栏中移除指定位置的菜单项。

3. 设置选中监听器

  • setOnTabSelectedListener(OnTabSelectedListener listener):设置导航栏的选中监听器。

4. 设置当前选中项 

  • setCurrentItem(int position, boolean animate):设置当前选中的菜单项。
  • setFirstSelectedPosition(int position):设置默认选中项。

5. 设置徽章

  • setNotification(String text, int position):在指定位置的菜单项上显示徽章。
  • removeNotification(int position):移除指定位置菜单项上的徽章。

 6. 样式和颜色定制

  • setBackgroundStyle(int backgroundStyle):用于设置底部导航栏的背景样式。
  • setDefaultBackgroundColor(int color):设置导航栏的默认背景颜色。
  • setAccentColor(int color):设置选中项的颜色。
  • setInactiveColor(int color):设置未选中项的颜色。
  • setTitleState(int state):设置标题的显示方式,可选值有STATE_ALWAYS_SHOW、STATE_ALWAYS_HIDE和STATE_SHOW_WHEN_ACTIVE。
  • setTitleTextSize(int textSize):设置标题的字体大小。

7. 动画效果 

  • setColored(boolean colored):设置是否启用选中项的颜色动画效果。
  • setBehaviorTranslationEnabled(boolean enabled):设置是否启用底部导航栏的滑动效果。

8. 隐藏底部导航栏。

  • hideBottomNavigation(boolean hide):显示或隐藏底部导航栏。

 9、设置模式

  • setMode(int mode) :
  1. MODE_FIXED:固定模式

    • 当导航栏的菜单项个数小于等于3个时,推荐使用此模式。
    • 在固定模式下,所有的菜单项会平均分布在底部导航栏中,且大小相等。
  2. MODE_SHIFTING:移动模式

    • 当导航栏的菜单项个数大于3个时,推荐使用此模式。
    • 在移动模式下,当前选中的菜单项会突出显示,而其他未选中的菜单项则会缩小并向上移动。

10.初始化 bottomNavigation

  •  initialise():用于完成底部导航栏的初始化。

 (二)、常用类

  1. BottomNavigationBar:底部导航栏的主要类,用于创建和管理底部导航项。通过该类,可以设置导航栏的模式、背景样式、菜单项等属性,并监听导航项的选中事件。
  2. BadgeItem:角标类,用于在导航栏的菜单项上显示角标。它有两个子类:TextBadgeItem用于在菜单项上显示文本角标。ShapeBadgeItem用于在菜单项上显示形状角标,如圆形、方形等。 
  3. BottomNavigationItem:底部导航项的类,用于创建每个菜单项。通过该类,可以设置图标、标题和选中状态的图标。
  4. OnTabSelectedListener:底部导航栏的选项卡选中监听器接口。通过实现该接口,可以监听到选项卡的选中事件,并在相应的回调方法中进行处理。
  5. BadgeAnimation角标动画类,用于定义角标的出现和消失动画效果。

 TextBadgeItem常用方法

  • setText(String text):设置角标上显示的文本内容。
  • setBackgroundColor(int color):设置角标的背景颜色。
  • setTextColor(int color):设置角标文本的颜色。
  • setHideOnSelect(boolean hideOnSelect):设置是否在选中菜单项时隐藏角标,默认为false。
  • setAnimationDuration(long duration):设置角标动画的持续时间,单位为毫秒。
  • show()hide():手动显示和隐藏角标。 
  •  setShape(Shape shape):设置角标的形状。

 ShapeBadgeItem常用方法

  • setIconDrawable(Drawable icon):设置菜单项的图标。
  • setInactiveIconDrawable(Drawable icon):设置菜单项的非选中状态的图标。 
  • setText(String text):设置菜单项的文本内容。
  •  setInactiveColor(int color):设置菜单项的非选中状态的颜色。
  • setActiveColor(int color):设置菜单项的选中状态的颜色。
  • setBadgeItem(BadgeItem badgeItem):为菜单项设置角标。

三、bottomNavigation的使用例子 

MainActivity: 

package com.example.bottomnavigationbardemo;import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;import android.graphics.Color;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;import com.ashokvarma.bottomnavigation.BottomNavigationBar;
import com.ashokvarma.bottomnavigation.BottomNavigationItem;
import com.ashokvarma.bottomnavigation.ShapeBadgeItem;
import com.ashokvarma.bottomnavigation.TextBadgeItem;import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity implements BottomNavigationBar.OnTabSelectedListener {private FragmentManager mFragmentManager;private BottomNavigationBar mBottomNavigationBar;TextBadgeItem mTextBadgeItem;ShapeBadgeItem mShapeBadgeItem;private FirstFragment firstFragment;private SecondFragment secondFragment;private ThirdFragment thirdFragment;private FragmentTransaction transaction;int curPosition;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mBottomNavigationBar = findViewById(R.id.bottom_navigation_bar);initBottomNavigationBar();}private void initBottomNavigationBar() {// 设置固定模式mBottomNavigationBar.setMode(BottomNavigationBar.MODE_FIXED);// 设置点击事件mBottomNavigationBar.setTabSelectedListener(this);List<BottomNavigationItem> items= getBottomNavigationItem();mBottomNavigationBar.addItem(items.get(0)).setFirstSelectedPosition(0).addItem(items.get(1)).addItem(items.get(2))// 此方法应在所有自定义方法结束时调用。此方法将考虑所有更改并重新绘制选项卡。.initialise();setDefaultFragment();}private List<BottomNavigationItem> getBottomNavigationItem() {initBadgeItem();// 用来存item的集合List<BottomNavigationItem> items = new ArrayList<>();// 创建Item1BottomNavigationItem homeItem = new BottomNavigationItem(R.drawable.home,"首页");// 设置被点击时的颜色homeItem.setActiveColor(R.color.purple_500).setBadgeItem(mShapeBadgeItem);// 设置没有被点中的颜色
//        homeItem.setInActiveColor(R.color.teal_200);// 设计没有被点中时的图片资源
//        homeItem.setInactiveIconResource(R.drawable.ic_launcher_foreground);items.add(homeItem);// 创建Item2BottomNavigationItem messageItem = new BottomNavigationItem(R.drawable.message,"信息");// 设置被点击时的颜色设置没有被点中的颜色messageItem.setActiveColor(R.color.purple_500)
//        .setInActiveColor(R.color.teal_200).setBadgeItem(mTextBadgeItem);//        .setInactiveIconResource(R.drawable.ic_launcher_foreground);items.add(messageItem);// 创建Item2BottomNavigationItem personage = new BottomNavigationItem(R.drawable.person,"个人信息");// 设置被点击时的颜色设置没有被点中的颜色personage.setActiveColor(R.color.purple_500);
//                .setInActiveColor(R.color.teal_200)
//                .setInactiveIconResource(R.drawable.ic_launcher_foreground);items.add(personage);return items;}/*** 设置徽章*/private void initBadgeItem() {mTextBadgeItem = new TextBadgeItem();mTextBadgeItem.setText("99+").setTextColor("#ffffff").setBorderWidth(5).setBackgroundColor("#ff4083").setHideOnSelect(false); // 选中是否隐藏
//                .setGravity(Gravity.TOP); // 设置位置mShapeBadgeItem = new ShapeBadgeItem();mShapeBadgeItem.setShape(ShapeBadgeItem.SHAPE_OVAL).setShapeColor(Color.RED).setEdgeMarginInDp(this,0) // 距离item的边距,dP.setSizeInDp(this, 15, 15) //宽高值,dp.setHideOnSelect(false).setAnimationDuration(300); //隐藏和展示的动画速度,单位毫秒,和setHideOnSelect一起使用}/*** 设置默认开启的fragment*/private void setDefaultFragment() {mFragmentManager = getSupportFragmentManager();FragmentTransaction transaction = mFragmentManager.beginTransaction();firstFragment = new FirstFragment();transaction.add(R.id.tb, firstFragment);transaction.commit();}/*** 隐藏当前fragment** @param transaction*/private void hideFragment(FragmentTransaction transaction) {if (firstFragment != null) {transaction.hide(firstFragment);}if (secondFragment != null) {transaction.hide(secondFragment);}if (thirdFragment != null) {transaction.hide(thirdFragment);}}@Overridepublic void onTabSelected(int position) {curPosition = position;//每次点击赋值//开启事务transaction = mFragmentManager.beginTransaction();// 隐藏当前的fragmenthideFragment(transaction);switch (position) {case 0:if (firstFragment == null) {firstFragment = new FirstFragment();transaction.add(R.id.tb, firstFragment);} else {transaction.show(firstFragment);}// transaction.replace(R.id.tb, firstFragment);break;case 1:if (secondFragment == null) {secondFragment = new SecondFragment();transaction.add(R.id.tb, secondFragment);} else {transaction.show(secondFragment);}break;case 2:if (thirdFragment == null) {thirdFragment = new ThirdFragment();transaction.add(R.id.tb, thirdFragment);} else {transaction.show(thirdFragment);}break;}// 事务提交transaction.commit();}@Overridepublic void onTabUnselected(int position) {// 没有被选中时,调用该方法}@Overridepublic void onTabReselected(int position) {// 再次选中时,调用此方法}}

代码解析:

MainActivity 类是一个包含底部导航栏的活动。在 onCreate() 方法中,通过调用 initBottomNavigationBar() 初始化了底部导航栏。

initBottomNavigationBar() 方法中:

  • 设置了底部导航栏的模式为 MODE_SHIFTING,表示选项卡会随用户的点击而移动。
  • 设置了底部导航栏的点击事件监听器为当前活动(this)。
  • 调用 getBottomNavigationItem() 方法获取底部导航栏的选项卡集合,并添加到底部导航栏中。
  • 调用 initialise() 方法完成底部导航栏的初始化,并设置默认显示的片段。

getBottomNavigationItem() 方法中:

  • 创建了三个底部导航栏的选项卡 BottomNavigationItem
  • 分别设置了选项卡的图标、文字、被点击时的颜色、未被点击时的颜色和未被点击时的图标资源。
  • 将选项卡添加到一个列表中并返回。

除此之外,还定义了其他方法:

  • initBadgeItem():初始化了两个徽章(TextBadgeItem 和 ShapeBadgeItem),并设置其属性。
  • setDefaultFragment():设置默认显示的片段为 FirstFragment
  • hideFragment(FragmentTransaction transaction):隐藏当前显示的片段。
  • onTabSelected(int position):处理选项卡被选中的事件,根据位置切换不同的片段。
  • onTabUnselected(int position):处理选项卡取消选中的事件。
  • onTabReselected(int position):处理选项卡再次被选中的事件。

总结:该代码是一个包含底部导航栏的活动,通过点击底部选项卡来切换显示不同的片段。可以根据需要修改底部导航栏的样式、添加更多的选项卡和设置对应的片段。

 FirstFragment :

package com.example.bottomnavigationbardemo;import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;public class FirstFragment extends Fragment {@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {View view = inflater.inflate(R.layout.activity_first_fragment, container, false);return view;}
}

 activity_first_fragment:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="第一个Fragment"android:textSize="30sp" />
</LinearLayout>

activity_main: 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#ffffff"android:orientation="vertical"><FrameLayoutandroid:id="@+id/tb"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1" /><Viewandroid:layout_width="match_parent"android:layout_height="0.5dp"android:background="#eeeeee" /><com.ashokvarma.bottomnavigation.BottomNavigationBarandroid:id="@+id/bottom_navigation_bar"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_gravity="bottom" /></LinearLayout>

注意: SecondFragment、ThirdFragment和FirstFragment的代码一样,其布局文件也跟activity_first_fragment一样。

运行效果:

 

 

 四、总结

        BottomNavigationBar(底部导航栏)是一种常见的用户界面设计模式,常用于移动应用程序中。下面是 BottomNavigationBar 的优点和缺点的总结:

优点:

1. 提供直观的导航:底部导航栏通常位于屏幕底部,使用户可以轻松访问主要功能和导航选项。这种布局方式更符合用户的自然操作习惯,提供了直观的导航体验。
2. 节省屏幕空间:将导航选项放置在底部,可以节省屏幕顶部的空间,更多地用于显示应用程序的内容。尤其对于大屏幕设备,这种设计可以更好地利用屏幕空间。
3. 易于使用手指操作:由于底部导航栏靠近手指自然的位置,用户可以轻松地使用拇指进行导航,而无需频繁改变手持设备的姿势。
4. 强调当前位置:通过高亮显示当前活动或选中的导航选项,底部导航栏可以帮助用户更清楚地知道自己所处的位置,并提供上下文导航。

缺点:

1. 屏幕空间限制:虽然底部导航栏节省了屏幕顶部的空间,但它也会占用屏幕底部的一定高度。对于某些应用程序而言,这可能会减少可用的内容显示区域。
2. 选项数量限制:底部导航栏通常适用于不超过五个主要功能或导航选项的应用程序。如果选项过多,可能会导致导航栏变得拥挤,难以识别和操作。
3. 设计一致性:底部导航栏是一种常见的设计模式,但并不适用于所有应用程序。在选择使用底部导航栏时,需要确保它与应用程序的整体设计风格和用户期望一致。

        综上所述,BottomNavigationBar 提供了直观、节省空间和易于操作的优点,但也存在屏幕空间限制和选项数量限制等一些缺点。在设计应用程序时,需要仔细考虑是否采用底部导航栏,并确保与应用程序的整体设计一致。

 

http://www.ds6.com.cn/news/87395.html

相关文章:

  • 公司网站后台怎么上传视频免费自制app软件
  • 打电话拉客户用网站做广告怎么做 好做吗百度竞价推广思路
  • wordpress建站dedecms网络营销师官网
  • 如何做一个与博物馆相关网站今日财经最新消息
  • html5网站开发框架大数据分析网站
  • 网络建站工具国内十大搜索引擎排名
  • 莱芜二手房出售信息最新房源seo自己怎么做
  • 中国城乡住房建设厅网站株洲seo推广
  • 阜宁做网站哪家最好个人怎么做互联网推广平台
  • 网站一般多少钱在线的crm系统软件
  • 网页设计策划案的范文优化大师 win10下载
  • 柳州正规网站制作公司哪家好百度账号管理
  • 在网站中搜索关键字小红书推广平台
  • 呼和浩特哪里做网站地推网app推广平台
  • 辽宁省住房和城乡建设网站外贸网站优化
  • 温州免费个人网站制作公司怎么做网络推广赚佣金
  • 仓库常用erp系统seo网站推广批发
  • 专业营销型网站全球搜索引擎入口
  • 网站开发小程序百度首页纯净版
  • 网站规划建设实训kol合作推广
  • 成人用品怎样做网站推广百度seo规则最新
  • 竹子建站邀请码百度整站优化
  • 电子游艺网站开发四川聚顺成网络科技有限公司
  • 建站公司走量渠道app引流推广软件
  • 黄骅市有什么好玩的地方百度首页排名优化服务
  • 数字营销传播seo网站自动推广
  • 网站建设 费用芒果视频怎样下载到本地
  • 网站点击按钮回到页面顶部怎么做本地免费发布信息网站
  • dedecms口腔医院类网站模板 织梦网站模板新东方雅思培训价目表
  • 合肥专业网站制淘宝指数官网的网址