Google 釋放的一個(gè)針對(duì)Android支持庫的更新引入了一個(gè)激動(dòng)人心的標(biāo)準(zhǔn)實(shí)現(xiàn),它是正通過諸如GMail或者Google Now這些應(yīng)用逐漸引介給大家的一種模式.
QQ圖片20190423203750.gif
這一模式被稱作滑動(dòng)刷新, 使用一個(gè)對(duì)用戶向上拉動(dòng)作的反饋,來通知app發(fā)生了一種數(shù)據(jù)刷新的請(qǐng)求. 這完成了另外一種常見的模式赏枚,無線滾動(dòng)竟趾,其使用一種向下動(dòng)作來載入更多的數(shù)據(jù).
我們已經(jīng)更新了 我們的組件 來揭示實(shí)現(xiàn)了該模式的新的 SwipeRefreshLayout 類. 要使用它的話言缤,只要簡(jiǎn)單的將其放入你現(xiàn)有的Xamarin.Android app布局中.
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/refresher"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
從代碼中設(shè)置 SwipeRefreshLayout 實(shí)體是相當(dāng)簡(jiǎn)單的. 簡(jiǎn)單的定義一個(gè)顏色主題還有一個(gè)當(dāng)一個(gè)由用戶發(fā)起的更新操作發(fā)生時(shí)被調(diào)用的回調(diào)就行了.
refresher = FindViewById<SwipeRefreshLayout> (Resource.Id.refresher);
refresher.SetColorScheme (Resource.Color.xam_dark_blue,
Resource.Color.xam_purple,
Resource.Color.xam_gray,
Resource.Color.xam_green);
refresher.Refresh += async delegate {
await forum.FetchItems (clear: true);
refresher.Refreshing = false;
};
顏色主題可以是任何類型的顏色或者就使用相同的顏色. 不管怎么樣薯蝎,第一個(gè)參數(shù)也會(huì)被用在設(shè)置初始化反饋條的背景上.
我們也已經(jīng)增加了一個(gè) 專用的示例 來展示這一代碼如何被集成到一個(gè)完整的場(chǎng)景中判哥,囊括了一個(gè)利用了片段的復(fù)雜布局.