Android開発ノートのSwipeRefreshLayout
4351 ワード
SwipeRefreshLayoutの概要
SwipeRefrshLayoutはGoogleの公式更新のコントロールであり、ViewGroupからsupport-v 4互換パッケージに統合されたドロップダウンリフレッシュの効果を実現することができる.
Androidソースでは、主に連絡先インタフェースで連絡先データをリフレッシュします.
フォルダに適用されたファイルの表示画面:
Demo
主にドロップダウンSwipeRefrshLayoutコントロールを実現し、listviewコントロールのデータを更新する.
(1)レイアウトファイル-activity_main.xml
(2)実現ロジック
参考資料
1.Androidゼロベース入門|SwipeRefreshLayoutドロップダウンリフレッシュhttp://www.sohu.com/a/195607552_6194672.SwipeRefreshLayout+RecyclerViewでアップ・リフレッシュとダウン・リフレッシュを実現https://www.cnblogs.com/liunanjava/p/5860024.html
SwipeRefrshLayoutはGoogleの公式更新のコントロールであり、ViewGroupからsupport-v 4互換パッケージに統合されたドロップダウンリフレッシュの効果を実現することができる.
Androidソースでは、主に連絡先インタフェースで連絡先データをリフレッシュします.
packages/apps/Contacts/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
フォルダに適用されたファイルの表示画面:
packages/apps/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java
Demo
主にドロップダウンSwipeRefrshLayoutコントロールを実現し、listviewコントロールのデータを更新する.
(1)レイアウトファイル-activity_main.xml
(2)実現ロジック
public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener{
private final static String TAG = "MainActivity";
private SwipeRefreshLayout swipeRefreshLayout;
private TextView textView;
private ListView listview;
private ArrayAdapter adapter;
private List data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);
swipeRefreshLayout.setOnRefreshListener(this);
swipeRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_bright,
android.R.color.holo_green_light, android.R.color.holo_orange_light,
android.R.color.holo_red_light);
textView = (TextView) findViewById(R.id.textView);
listview = (ListView) findViewById(R.id.listView);
data = new ArrayList();
for (int i = 0; i < 5; i++) {
data.add(" item :" + i);
}
adapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, data);
listview.setAdapter(adapter);
}
public void showLoading() {
textView.setText(" , ");
}
public void hideLoading() {
textView.setText(" !");
swipeRefreshLayout.setVisibility(View.VISIBLE);
swipeRefreshLayout.setRefreshing(false); // close refresh animator
}
@Override
public void onRefresh() {
Log.i(TAG,"onRefresh()");
showLoading();
final Random random = new Random();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
hideLoading();
int min=1;
int max=20;
Random random = new Random();
int num = random.nextInt(max)%(max-min+1) + min;
data.clear();
for(int i=0;i < num;i++){
data.add(" item:"+i);
}
adapter.notifyDataSetChanged();
}
}, 5000);
}
}
参考資料
1.Androidゼロベース入門|SwipeRefreshLayoutドロップダウンリフレッシュhttp://www.sohu.com/a/195607552_6194672.SwipeRefreshLayout+RecyclerViewでアップ・リフレッシュとダウン・リフレッシュを実現https://www.cnblogs.com/liunanjava/p/5860024.html