尝试以下操作:
我们将在主活动中添加一个从片段调用的函数,该函数将隐藏/显示浮动操作按钮。
在主活动中
//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