首页 > 其他分享 >Android ViewPager切换页面点击触发不了focus问题

Android ViewPager切换页面点击触发不了focus问题

时间:2023-09-26 17:11:51浏览次数:38  
标签:ViewPager focus navView currentFragment position Android 页面

viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
            @Override
            public void onPageSelected(int position) {
                // 页面选中时执行操作
                BottomNavigationView navView = findViewById(R.id.nav_view);
                Log.i(TAG, "onPageSelected: " + position);
                navView.getMenu().getItem(position).setChecked(true);
                MainActivity activity = MainActivity.this;
                activity.setTitle(navView.getMenu().getItem(position).getTitle());
                // 手动请求焦点
                // 通过FragmentStateAdapter获取当前Fragment,处理第一次没有焦点需要连点两次问题
                Fragment currentFragment = getSupportFragmentManager().findFragmentByTag("f" + position);
                if (currentFragment != null) {
                    View currentFragmentView = currentFragment.getView();
                    if (currentFragmentView != null) {
                        // 手动请求焦点
                        view.requestFocus();
                    }
                }
            }
        });

标签:ViewPager,focus,navView,currentFragment,position,Android,页面
From: https://www.cnblogs.com/zhaogaojian/p/17730661.html

相关文章

  • 被裁的Android程序员,未来还能有什么方向呢?
    前言做了一份程序员“失业”后的自救方向汇总:接下来挨个聊聊。产品经理都说产品和技术总是相爱相杀,不过产品和技术的关系也是最近的。无论是产品转技术,还是技术转产品,相对来说都是比较容易的,很多底层逻辑是互通的。产品的生命周期比技术更长一点,而技术的平均薪酬要比产品高一点,算是......
  • Android程序员该如何制定自己的职业路线?
    前言对一个程序员来说,职业路线不外乎以下三种:①技术路线②管理路线③转行路线技术路线最近阿里调整了职级序列,取消了P序列而变成了14-28级,但本质上也是一条技术逐步上升的路线。普通程序员的技术发展路线为:初级工程师-中级工程师-高级工程师-技术专家/系统架构师。值得一提的是,不是......
  • Android 第一次点击EditText不显示光标问题
    可以考虑在XML布局文件中添加android:focusableInTouchMode="true"属性,以确保ClearEditText控件在触摸模式下也能获取焦点。这样,用户在首次点击时会立即看到光标。在XML布局文件中,将ClearEditText的定义中添加android:focusableInTouchMode属性,如下所示:<com.tools.q......
  • 使用 Go 和 ADB 启动 Android 应用程序
    在移动应用程序开发中,有时我们需要自动启动Android应用程序以执行测试、截屏或其他自动化任务。本文将介绍如何使用Go编写一个程序,通过Android调试桥(ADB)来启动指定的Android应用程序。我们将提供完整的Go代码示例以及相应的说明。准备工作安装Go编程语言。你可以从Go......
  • Android平台轻量级RTSP服务模块如何实现一个服务发布多路RTSP流?
    我们在做Android平台轻量级RTSP服务和内网RTSP网关的时候,遇到过这样的问题,如何同时发布多路RTSP流出去?回答这个问题,实际上不难,大牛直播SDK在设计这个模块的时候,考虑到了一个Service带多路流的情况,以下是大概的技术实现:启动RTSP服务:启动RTSP服务的时候,你可以注意到OpenRtspServer()......
  • Android使用webview缓存
    //StringcacheDirPath=context.getFilesDir().getAbsolutePath()+"cache/";//getSettings().setAppCachePath(cacheDirPath);//1.设置缓存路径//getSettings().setAppCacheMaxSize(500*1024*1024);//2.设置缓存大小//getSettings().setAppCache......
  • Android EditText显示图标
    实现了要给带清除按钮的ClearEditText,但是无法显示图标<androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_gravity="center">......
  • Android 多选下拉框的简单实现
    1、布局文件(activity_dropdown.xml)<?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"to......
  • android驱动模块实现文件重定位
    编写驱动模块进行sys_call_tablehook替换sys_open和sys_openat系统调用为自定义函数,需要注意sys_call_table是只读的,修改前需要前修改其内存属性为可写。直接修改内核源码,并编写驱动模块实现filterfunction进行过滤。sys_call_tablehook只能对系统调用函数进行hook。而第......
  • R3300L, Q7 ATV Android9固件
    R3300L,Q7ATVAndroid9固件固件来源https://www.znds.com/tv-1239603-1-1.html之前在恩山上发布过1080p安卓6固件https://www.right.com.cn/forum/thread-1761250-1-1.html,这个固件的不足之处就是没有GoogleServiceFramework,只能通过SmartYoutube之类的第三方APP......