1

教えてください、どうすればこのようにswipeRefreshLayoutを作成できますか

ここに画像の説明を入力

私のswipeRefreshLayoutは次のようになります ここに画像の説明を入力

丸じゃなくて線にしたい

レイアウト:

<android.support.v4.widget.SwipeRefreshLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/swipeRefreshLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
        <LinearLayout
                android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">
            <ListView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:id="@+id/listView"/>
        </LinearLayout>
    </android.support.v4.widget.SwipeRefreshLayout>

コード:

swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);
    swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() { }
    });
    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);

appcompat ライブラリ、ActionBarActivity を使用します

4

2 に答える 2

0

古い SwipeRefreshLayout を返すには 2 つのオプションがあります

。 1. Steve が言ったように、リビジョン 21 より前の v4 サポート ライブラリを使用します。Google のサイトからダウンロードしたり、古いプロジェクトから取得したり、build.gradle の依存関係で適切なバージョンを使用したりできます。

 compile 'com.android.support:support-v4:20.0.0'

ただし、この場合、将来問題になる可能性のある古いライブラリを使用します。他にも役立つクラスがたくさんあるからです。

2. SwipeRefreshLayout のソース コードを取得し、プロジェクトに配置します。これも完璧な解決策ではありませんが、Google 社員は選択の余地がありません。
A. https://dl-ssl.google.com/android/repository/support_r20.zipから v4 サポート ライブラリ リビジョン 20 のソースをダウンロードし、解凍します。
B. com.yourpackagename.supportv4r20 などのサブパッケージをプロジェクトに作成し、次のファイルをコピーします
。BakedBezierInterpolator.java
SwipeProgressBar.java
SwipeRefreshLayout.java
このファイルは ../support/v4/src/java/android/support/v4/widget/ ディレクトリにあります。
C. SwipeProgressBar のコードを SwipeProgressBar を使用するように修正し、SwipeRefreshLayout のコードを SwipeProgressBar を使用するように修正します。「import android.support.v4.widget*」を削除し、パッケージからローカル クラスを使用するようにコードを変更する必要があります (com.yourpackagename.supportv4r20 から)。これらのクラスの他のエラーであってはなりません。
D.次に、パッケージから SwipeRefreshLayout を使用するようにレイアウト ファイルを変更します。

  <com.yourpackagename.supportv4r20.SwipeRefreshLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/swipe_container"
      android:layout_width="match_parent"
      android:layout_height="match_parent">
....
</com.yourpackagename.supportv4r20.SwipeRefreshLayout>

今すぐ動作するはずです。v4 サポート ライブラリの最新バージョンも使用できます。

もう 1 つ重要な注意事項があります。 パッケージの SwipeRefreshLayout には、v4 サポート ライブラリとの関係がまだいくつかあります。これらは android.support.v4.view.MotionEventCompat と android.support.v4.view.ViewCompat です。私はコードを変更しておらず、まだ使用しています。このクラスのコードを確認したところ、「そのまま」使用できると思います。ただし、将来 SwipeRefreshLayout で問題が発生した場合は、SwipeRefreshLayout / SwipeProgressBar / SwipeProgressBar で行ったように、ypu はこれらすべてのファイルを v4 サポート ライブラリ r20 ソースからコピーし、すべての依存関係を修正する必要があります。

乾杯!

于 2015-04-08T14:53:25.833 に答える