栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android-Navigation、Menu

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android-Navigation、Menu

Navigation

1、导入库;

def nav_version = "2.4.1"

// Java language implementation
implementation "androidx.navigation:navigation-fragment:$nav_version"
implementation "androidx.navigation:navigation-ui:$nav_version"

2、创建导航;

 

通过第一个图标加入节点(fragment),placeholder系空的新节点;

 通过拖拽设置前后节点;

 3、创建一个空Activity作为fragment的容器;




    

app:navGraph 属性将 NavHostFragment 与导航图相关联。导航图会在此 NavHostFragment 中指定用户可以导航到的所有目的地。

app:defaultNavHost="true" 属性确保您的 NavHostFragment 会拦截系统返回按钮。

注意只能有一个默认 NavHost。如果同一布局(例如,双窗格布局)中有多个宿主,请务必仅指定一个默认 NavHost。

4、根据需求为布局文件实现目标功能;

如:

public class ChooseFragment00 extends Fragment implements View.OnClickListener {
    private Button option_a,option_b,option_c;

    // Required empty public constructor
    public ChooseFragment00 (){}

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
        View view =inflater.inflate(R.layout.fragment_00, container, false);
        option_a = view.findViewById(R.id.option_a);
        option_a.setOnClickListener(this);
        option_b = view.findViewById(R.id.option_b);
        option_b.setOnClickListener(this);
        option_c = view.findViewById(R.id.option_c);
        option_c.setOnClickListener(this);
        return view;
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.option_a:
                Navigation.findNavController(view).navigate(R.id.action_fragment_00_to_fgt_option_a);
                break;
            case R.id.option_b:
                Navigation.findNavController(view).navigate(R.id.action_fragment_00_to_fgt_option_b);
                break;
            case R.id.option_c:
                Navigation.findNavController(view).navigate(R.id.action_fragment_00_to_fgt_option_c);
                break;
        }
    }
}

onCreateView

View view =inflater.inflate(R.layout.fragment_00, container, false);创建与对应布局的连接;

onClick

实现事件发生。


Menu

1、同样的在res中创建menu文件夹;

2、在menu中创建菜单视图;



    
    

 3、两个主要方法;

    //给activity加载menu
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        //加载菜单文件
        inflater.inflate(R.menu.menu_base, menu);
        return super.onCreateOptionsMenu(menu);//必须调用父类的方法
    }

    //重写方法,处理点击菜单项的事件
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // 处理点击菜单项的事件
        switch (item.getItemId()) {
            case R.id.chat:
                this.textContent.setText("发起群聊!");
                return true;
            case R.id.add_friend:
                this.textContent.setText("添加朋友!");
                return true;
            default://其他的要这样返回,固定模式
                return super.onOptionsItemSelected(item);
        }
    }

重写onCreateOptionsMenu方法实现对菜单的加载,

重写onOptionsItemSelected方法实现对用户点击菜单项的事件响应,

也可重写onPrepareOptionsMenu() 方法动态改变菜单项

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877659.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号