我有一个主要的活动,包括一个SwipeRefreshLayout。该活动包含fragments。
我想在特定的片段中禁用SwipeRefreshLayout,因为SwipeRefreshLayout的滑动手势干扰了片段上的ExpandableListView滚动手势。
为此,我尝试了以下几点,但没有成功:
关于片段我有:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.listfragment, container, false);
//......
expListView = (ExpandableListView) v.findViewById(R.id.expandableList);
final MainActivity mainAct = (MainActivity) getActivity();
//.......
expListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPosition) {
Log.d("test","Disabled");
//SwipeRefreshLayout is called swipeRefreshLayout on MainActivity
mainAct.swipeRefreshLayout.setEnabled(false);
}
});运行这之后,我可以看到日志消息,因此swipeRefreshLayout应该被设置为false,但是SwipeRefreshLayout的下拉姿态是有效的。
发布于 2017-09-20 08:32:36
试着像:
从你的碎片(铸造):
((MainActivity) getActivity()).disableSwipe();现在在你的活动中:
private void disableSwipe(){
swipeRefreshLayout.setEnabled(false);
}查看this answer以获得更多详细信息
https://stackoverflow.com/questions/46316989
复制相似问题