【问题标题】:Android Studio - Floating Action Button not working on ViewPager InitializationAndroid Studio - 浮动操作按钮不适用于 ViewPager 初始化
【发布时间】:2020-06-05 03:06:13
【问题描述】:

请帮助浮动操作按钮

我正在尝试使用 ViewPager 加载 sharedFab(FloatingActionButton)。但是当我第一次加载时它不起作用(页面更改之前)。

viewPagerMainAct.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @SuppressLint("SetTextI18n")
            @Override
            public void onPageSelected(int position) {
                switch (position){
                    case 0 :
                        sharedFab.setImageDrawable(getDrawable(R.drawable.ic_medical));
                        sharedFab.show();
                        sharedFab.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                Toast.makeText(MainActivity.this, "New Chat", Toast.LENGTH_SHORT).show();
                            }
                        });
                        break;
                    case 1:
                        sharedFab.setImageDrawable(getDrawable(R.drawable.ic_sticky_notes));
                        sharedFab.show();
                        sharedFab.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                Toast.makeText(MainActivity.this, "New Post", Toast.LENGTH_SHORT).show();
                            }
                        });
                        break;
                    case 2:
                        sharedFab.hide();
                        break;
                    default:
                        sharedFab.hide();
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

【问题讨论】:

  • 在view pager外设置点击监听,点击时查看view pager当前页面。

标签: java android android-studio android-viewpager floating-action-button


【解决方案1】:

你使用 addOnPageChangeListener 它在做某事之前等待你的请求。 所以,最简单的方法,就是添加这个 viewPagerMainAct 之前的 sharedFab.setImageDrawable(getDrawable(R.drawable.ic_medical))。

在xml中添加图片的第二种方式,如默认图片。然后在changeListener里改一下。

【讨论】:

    【解决方案2】:

    将这行代码插入到onCreate中。

    sharedFab.setImageDrawable(getDrawable(R.drawable.ic_medical));
                                sharedFab.show();
    

    第一次运行应用程序时,您不会将照片放在按钮内。但是在第一次点击时,这张照片被放置了

    【讨论】:

      【解决方案3】:

      我完全同意你的答案是正确的,但我使用的是一个带有两个 viewpager 片段和不同工作的 FAB。如果它在初始化时没有加载,那我们该怎么办?

      【讨论】:

        猜你喜欢
        • 2015-05-24
        • 2016-05-06
        • 1970-01-01
        • 2016-11-09
        • 2015-11-19
        • 1970-01-01
        • 2015-11-08
        • 2016-03-03
        • 2021-10-24
        相关资源
        最近更新 更多