【发布时间】:2018-06-19 01:49:58
【问题描述】:
嗨,我的主要活动上有一个 ViewPager 和 FloatingButton,而视图寻呼机有一些带有 ListView 的 Fragments 我想知道有没有当我在 viewpager 上的列表滚动此 FloatingButton 时隐藏和显示?
【问题讨论】:
标签: android listview floating-action-button
嗨,我的主要活动上有一个 ViewPager 和 FloatingButton,而视图寻呼机有一些带有 ListView 的 Fragments 我想知道有没有当我在 viewpager 上的列表滚动此 FloatingButton 时隐藏和显示?
【问题讨论】:
标签: android listview floating-action-button
试试这个:
我们将在主要活动中添加一个函数,该函数将从片段中调用,该函数将隐藏/显示浮动操作按钮。
在 MainActivity
//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 附加到您的列表视图
把YourActivityClassName换成主Activity的类名,这个应该是MainActivity,查看主Activity中的类名
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);
}
}
});
主 Activity 中的浮动操作按钮
(删除应用程序行为,您不需要它,我们通过程序创建它)
<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" />
祝你好运:)
来源:
【讨论】: