如何使 SwipeRefreshLayout 不可滑动?
How to make a SwipeRefreshLayout not swipeable?
我的一项活动有一个刷新按钮。每当用户按下该按钮时,我想使用 SwipeRefreshLayout 刷新动画,但我不希望用户能够向下滑动以刷新屏幕。有什么办法可以做到这一点吗?
你试过吗;
//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);
我在片段中使用;
@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);
}
}
你试过吗swipeRefreshLayout.setEnabled(false);
?然后你可以简单地在按钮的监听器中调用 setRefreshing(true)
和 setRefreshing(false)
我的一项活动有一个刷新按钮。每当用户按下该按钮时,我想使用 SwipeRefreshLayout 刷新动画,但我不希望用户能够向下滑动以刷新屏幕。有什么办法可以做到这一点吗?
你试过吗;
//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);
我在片段中使用;
@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);
}
}
你试过吗swipeRefreshLayout.setEnabled(false);
?然后你可以简单地在按钮的监听器中调用 setRefreshing(true)
和 setRefreshing(false)