バックグラウンド
Google は最近、サポート ライブラリの更新を公開しました。これには、新しい「SwipeRefreshLayout」ビューが含まれています。
ビューは、リフレッシュ操作を実行するために下にスワイプすることをサポートしながら、別のビューをラップすることができます。
スクリーンショット:
問題
Google はサンプルを提供していないので (少なくとも私が見つけたものはまだありません)、自分で使ってみました。
最初はスワイプするたびにクラッシュ (NPE) が発生しましたが、「OnRefreshListener」を提供していないことが原因であることがわかりました。
しかし、私はまだそれをカスタマイズするどころか、それを使用する方法を理解していません
レイアウト ファイルの XML は次のとおりです。
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.swiperefreshlayouttest.MainActivity"
tools:ignore="MergeRootFrame" >
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TTT"
android:textSize="40sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TTT"
android:textSize="40sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TTT"
android:textSize="40sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TTT"
android:textSize="40sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TTT"
android:textSize="40sp" />
</LinearLayout>
</ScrollView>
</android.support.v4.widget.SwipeRefreshLayout>
コードですが、特別なことは何もしていません:
public class MainActivity extends ActionBarActivity
{
@Override
protected void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final SwipeRefreshLayout swipeRefreshLayout=(SwipeRefreshLayout)findViewById(R.id.container);
swipeRefreshLayout.setOnRefreshListener(new OnRefreshListener()
{
@Override
public void onRefresh()
{
// do nothing
}
});
}
}
質問
このビューを使用する正しい方法は何ですか?
どうすればカスタマイズできますか? 現在はただの黒線です...