[英]How to make a SwipeRefreshLayout not swipeable?
I have a refresh button on one of my activities. 我的一项活动有一个刷新按钮。 Whenever a user presses that button I want to use the SwipeRefreshLayout refreshing animation, but I do not want the user to be able to swipe down to refresh the screen .
每当用户按下该按钮时,我都想使用SwipeRefreshLayout刷新动画, 但是我不希望用户能够向下滑动以刷新屏幕 。 Is there any way I can do this?
有什么办法可以做到吗?
Have you tried; 你有没有尝试过;
//button clicked...
//show loader, disable further pulltorefresh requests
//do some timed task
pullToRefresh.setRefreshing(true);
//Task done...
//hide loader, allow pulltorefresh requests
pullToRefresh.setRefreshing(false);
I use in a fragment; 我用一个片段;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.my_fragment, container, false);
pullToRefresh = (SwipeRefreshLayout)view.findViewById(R.id.pullToRefresh);
pullToRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
refreshContent();
}
});
Button refresh = (Button) view.findViewById(R.id.refreshMethod);
refresh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
refreshContent();
}
});
return view;
}
refreshContent() {
//call Async task via RetrieveFeedTask extends AsyncTask<Void, Void, String> {}
new RetrieveFeedTask().execute();
}
class RetrieveFeedTask extends AsyncTask<Void, Void, String> {
private Exception exception;
protected void onPreExecute() {
recycler.clearOnScrollListeners();
pullToRefresh.setRefreshing(true);
}
protected String doInBackground(Void... urls) {
//do task like get JSON from server
//try sleep for a bit
try {
Thread.sleep(2000);
} catch (InterruptedException error) {
}
}
protected void onPostExecute(String response) {
//do post stuff
//hide pullfresh, full refresh view done
pullToRefresh.setRefreshing(false);
}
}
have you tried swipeRefreshLayout.setEnabled(false);
您是否尝试过
swipeRefreshLayout.setEnabled(false);
? ? And then you could simply call the
setRefreshing(true)
and setRefreshing(false)
in your button's listener 然后您可以在按钮的侦听器中简单地调用
setRefreshing(true)
和setRefreshing(false)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.