简体   繁体   English

如何使SwipeRefreshLayout不可滑动?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM