
这是关于协调活动中浮动 *** 作按钮的行为的问题,其中包含5个片段.
在我的应用程序中,我有一个Activity,它包含一个VIEwPager和一个用floatingActionbutton定义的xml. VIEwPager包含片段,每个片段内都有一个RecyclerVIEw.On点击浮动 *** 作按钮我实现了scrollToposition(0).由于我在main活动的xml文件中实现了floating Actionbutton,因此scrollToposition()仅在单击浮动 *** 作按钮的最后一个片段中起作用.我如何克服这一点,以便在任何片段中点击浮动按钮时,回收器视图滚动到顶部?
我已经尝试在片段布局文件中实现了floatingactionbutton并且它完全正常.但是当我从一个片段滑动到另一个片段时,浮动动作按钮将会移动.所以有任何方法可以实现我在其中的浮动 *** 作按钮.主活动xml文件,并且仍然能够在点击floatingActionbutton的每个片段中实现scrolltoposotion(0)?非常感谢任何建议.
以下是包含浮动 *** 作按钮的xml文件.
以下是片段的xml文件
以下是每个片段中浮动 *** 作按钮的实现
fab = (androID.support.design.Widget.floatingActionbutton) vIEw.findVIEwByID(R.ID.fab); fab.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { linearlayoutmanager llm = (linearlayoutmanager) mRecyclerVIEw.getLayoutManager(); llm.scrollTopositionWithOffset(0,0); } });最佳答案因为我使用VIEwPager,所以不确定这是否适用于SlIDingTabLayout.让FAB onClick在您的活动中调用方法(例如onFABClick())并将其定义为:
public voID onFABClick(VIEw vIEw) { if (fragments.get(mVIEwPager.getCurrentItem()) instanceof FragmentA) { if (fragmentA!= null) { fragmentA.fabOnClick(); } } else if (fragments.get(mVIEwPager.getCurrentItem()) instanceof FragmentB) { if (fragmentB!= null) { fragmentB.fabOnClick(); } } }这里片段是保存片段对象的数组.它是传递给VIEwPager适配器的数组.我猜你必须用SlIDingTabLayout的当前片段方法的等效get索引来改变mVIEwPager.getCurrentItem().
最后,fabOnClick()方法在每个片段中实现. (您需要让所有片段实现一个接口(例如FABActionInterface)并在那里添加方法签名.
在这里,您基本上是捕获FAB onclick并指示它在当前片段上调用方法.
总结以上是内存溢出为你收集整理的android – 活动的每个片段中的浮动 *** 作按钮的不同实现全部内容,希望文章能够帮你解决android – 活动的每个片段中的浮动 *** 作按钮的不同实现所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)