代码之家  ›  专栏  ›  技术社区  ›  Sadegh

带浮动按钮和listView的android ViewPager

  •  -1
  • Sadegh  · 技术社区  · 8 年前

    嗨,我有一个 查看寻呼机 浮动按钮 在我的主要活动和查看寻呼机上有一些 碎片 有了ListView,我想知道当我的列表在viewpager上滚动时,是否有办法隐藏和显示这个浮动按钮?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Dor Rud    8 年前

    尝试以下操作:

    我们将在主活动中添加一个从片段调用的函数,该函数将隐藏/显示浮动操作按钮。

    在主活动中

    //Make FAB accessible on all function, declare it in MainActivity's class
    FloatingActionButton fab;
    
    public void fabShowHide(Boolean hide){
         if(hide)
             fab.hide();
         else
             fab.show();
    }
    

    在片段中,将onScrollListner附加到listview

    代替 YourActivityClassName 对于主活动类名,这可能是 主要活动 ,检查主活动中类的名称

     listview.setOnScrollListener(new AbsListView.OnScrollListener() {
        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
    
    
        }
    
        @Override
        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    
            int lastItem = firstVisibleItem + visibleItemCount;
            if (lastItem == totalItemCount && firstVisibleItem > 0) {
            //Calling the function from main activity (hide)
                ((YourActivityClassName)getActivity()).fabShowHide(true);
            }
            else {
            //Calling the function from main activity (show)
                ((YourActivityClassName)getActivity()).fabShowHide(false);
            }
        }
    });
    

    主活动中的浮动操作按钮

    (删除应用程序行为,您不需要它,我们通过编程创建了它)

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        android:src="@android:drawable/ic_dialog_email" />
    

    祝你好运:)

    资料来源:

    Call an activity method from a fragment

    FloatingActionButton hide on list scroll