안 드 로 이 드 는 SwipeRefreshLayout 를 사용 하여 ListView 드 롭 다운 을 실현 합 니 다.
5247 단어 android드 롭 다운 리 셋업 로드
이번 에는 시스템 의 Swipe RefreshLayout 를 사용 하여 드 롭 다운 새로 고침 을 실현 하고 ListView 의 미끄럼 감청 을 설정 하여 맨 아래로 미 끄 러 졌 는 지 판단 한 다음 에 더 많이 불 러 옵 니 다.
이것 은 PullToRefreshListView 보다 훨씬 간단 합 니 다.PullToRefreshListView 가 드 롭 다운 리 셋 을 실현 하려 면 이 블 로 그 를 볼 수 있 습 니 다.
안 드 로 이 드 는 PullToRefresh 프레임 워 크 를 사용 하여 ListView 드 롭 다운 을 실현 합 니 다.
어떤 것 을 사용 하 는 지 에 대해 서 는 제품 의 수요 에 따라 선택 할 수 있 습 니 다.이 두 가지 갱신 은 지금까지 세상 에 PullToRefreshListView 를 사용 한 것 이 비교적 많 습 니 다.
우선 Swipe Refresh Layout 의 다섯 가지 방법 을 말씀 드 리 겠 습 니 다.
1.setOn RefreshListener():제스처 슬라이딩 모니터 를 설정 합 니 다.
2.setProgressBackgroundColor():진도 권 의 배경 색 을 설정 합 니 다.
3.setColorSchemeResources():진도 애니메이션 의 색상 을 설정 합 니 다.
4.set Refreshing():구성 요소 의 세척 상 태 를 설정 합 니 다.
5.setSize():진도 권 의 크기 설정
이것 은 여러분 이 간단하게 알 아 보 세 요.아래 코드 에서 모두 사용 합 니 다.
먼저 레이아웃 파일 을 말 합 니 다.Swipe RefreshLayout 으로 드 롭 다운 새로 고침 을 하려 면 ListView 를 Swipe RefreshLayout 레이아웃 에 써 야 합 니 다.
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/srfl">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/listview" />
</android.support.v4.widget.SwipeRefreshLayout>
제 가 직접 쓴 데모 라 서 내 려 갈 때 1 초 지연 되 는 handler 를 보 내 고 데이터 새로 고침 adapter 를 추가 합 니 다.더 많이 불 러 올 때 ListVIEW 에 미끄럼 감청 을 설정 하여 adapter 의 맨 아래로 미 끄 러 졌 는 지 판단 한 다음 에 데 이 터 를 불 러 와 adapter 를 새로 고 칩 니 다.
public class MainActivity extends Activity {
private ListView mListView;
private SwipeRefreshLayout swipeRefreshLayout;
private List<String> stringList=new ArrayList<>();
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for (int x=0 ; x<16;x++){
stringList.add(" : Z"+"---"+x);
}
initView();
}
private void initView() {
swipeRefreshLayout= (SwipeRefreshLayout) findViewById(R.id.srfl);
// ;( SwipeRefreshLayout.LARGE DEFAULT, )
swipeRefreshLayout.setSize(SwipeRefreshLayout.LARGE);
// 。 :
swipeRefreshLayout.setProgressBackgroundColorSchemeColor(Color.CYAN);
// 。 , ,
swipeRefreshLayout.setColorSchemeResources(android.R.color.holo_orange_dark
,android.R.color.holo_blue_dark
,android.R.color.holo_red_dark
,android.R.color.widget_edittext_dark);
mListView= (ListView) findViewById(R.id.listview);
adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, stringList);
mListView.setAdapter(adapter);
//
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
public void onRefresh() {
// 1 handler
handler.sendEmptyMessageDelayed(199,1000);
}
});
// listview
mListView.setOnScrollListener(new AbsListView.OnScrollListener() {
//
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState){
//
case AbsListView.OnScrollListener.SCROLL_STATE_IDLE:
//
if(view.getLastVisiblePosition()==(view.getCount())-1){
for(int x=0;x<5;x++){
stringList.add(stringList.size()," "+x);
}
adapter.notifyDataSetChanged();
}
break;
}
}
//
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
});
}
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
if(msg.what==199){
stringList.add(0," ");
adapter.notifyDataSetChanged();
// ;false
swipeRefreshLayout.setRefreshing(false);
}
}
};
}
이 안 에는 Swipe RefreshLayout 의 몇 가지 방법 을 보 여 드 리 기 위해 기본 값 을 모두 사용 하면 set ProgressBackgroundColor():setColor SchemeResources():set Size():이 세 가지 방법 을 제거 할 수 있 습 니 다.이렇게 하면 코드 가 더욱 적 고 기본 효과 도 매우 좋 습 니 다.이것 은 여러분 의 요구 에 달 려 있 습 니 다.
소스 코드
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.