14

私はAndroidを初めて使用し、Google Webサイトでサンプルコードを調べています。私が現在取り組んでいるコードは SwipeRefreshLayout です: http://developer.android.com/samples/SwipeRefreshLayoutBasic/index.html

コードでは、リストビューに対して SwipeRefreshLayout が実行されていることがわかります。つまり、リスト ビューを下にドラッグすると、メソッドがトリガーされ、リストビューが更新されます。

<android.support.v4.widget.SwipeRefreshLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/swiperefresh"
      android:layout_width="match_parent"
      android:layout_height="match_parent">

    <ListView
          android:id="@android:id/list"
          android:layout_width="match_parent"
          android:layout_height="match_parent" />

</android.support.v4.widget.SwipeRefreshLayout>

私を混乱させているのは、リストビューを下にドラッグしたときにリストビューの上部に表示されるプログレスアニメーションバーのコードにレイアウトがないことです。SwipeRefreshLayout を下にドラッグすると、ユーザーが xml でレイアウトを指定しなくても、プログレス アニメーション バーが自動的に生成されると思いますか?

たとえば、更新時にアニメーションが画面の端に触れないように、プログレス アニメーション バーの両端にパディングを置きたい場合、どうすればよいでしょうか?

https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.htmlは、実際にはそれについて何も言いません。

4

2 に答える 2

12

変更することはできませんが、非表示にして、トリガーされたら独自のものを表示することはできます:-)

SwipeRefreshLayout swiperefresh = (SwipeRefreshLayout)root.findViewById(R.id.swiperefresh);
swiperefresh.setOnRefreshListener(this);
swiperefresh.setColorSchemeColors(0,0,0,0);
swiperefresh.setProgressBackgroundColor(android.R.color.transparent); 

ノート:

  • Eclipse では、これをコンパイルするために @SuppressLint("ResourceAsColor") を追加する必要があります。

  • 適切な時点で setRefreshing(false) を呼び出す必要があります。そうしないと、onRefresh は再びトリガーされません。

于 2014-10-20T05:14:25.537 に答える