RecentNewsFragment.javaフラグメント内のCardViewでSwipeRefreshLayoutを実装する方法は?
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final String TAG = "MainPageActivity";
final RecyclerView rvNewsArticle;
final SwipeRefreshLayout swipeRefreshLayout;
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_recent_news, container, false);
rvNewsArticle = (RecyclerView) view.findViewById(R.id.rvNewsArticle);
rvNewsArticle.setHasFixedSize(true);
LinearLayoutManager manager = new LinearLayoutManager(getActivity());
rvNewsArticle.setLayoutManager(manager);
swipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipeRefresh);
swipeRefreshLayout.setColorSchemeResources(R.color.primaryColor, R.color.primaryTextColor, R.color.secondaryColor);
String url = "http://192.168.0.29/theflare/app/news.php";
StringRequest stringRequest = new StringRequest(Request.Method.GET,
url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, response);
ArrayList<News> newsList = new JsonConverter<News>()
.toArrayList(response, News.class);
final NewsArticleAdapter adapter = new NewsArticleAdapter(getActivity(), newsList);
rvNewsArticle.setAdapter(adapter);
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
rvNewsArticle.setAdapter(adapter);
swipeRefreshLayout.setRefreshing(false);
}
}, 2500);
}
});
}
}
);
MySingleton.getInstance(getActivity()).addToRequestQueue(stringRequest);
return view;
}
あなたが見ることができるように、これは私が私のCardView
用に構築したコードです。残念ながら私のSwipeRefreshLayout
は動作しません。 (それは動作しますがアニメーションのみで、ビューをリフレッシュしません)setOnRefreshListener
を間違った場所に置いたのですか、ここで何か不足していますか?助けてくれてありがとう。
**問題**:あなただけ(アニメーションを示す)、それを更新していると '2.5'秒後にあなただけの' swipeRefreshLayout.setRefreshing(false)を使用してアニメーションを無効にします; 'しかし、'内部で実行一切要求がありませんでしたonRefresh'。したがって、実行依頼 'onRefresh' –