7

アプリに垂直スワイプを実装しようとしています。( ViewPagerでのスワイプと同じですが、垂直方向です)。

Jake Whartons ライブラリAndroid-DirectionalViewPagerが見つかりました。これは、互換性ライブラリに加えて含める必要があるスタンドアロンの .jar ファイルです。プロジェクトにファイルを含めました。互換性ライブラリと同様に、「参照ライブラリ」の下にあります。
しかし、問題は、ライブラリで提供されている例を機能させることさえできないことです。デバッガーは次の行で停止します

setContentView(R.layout.main);

「ソースが見つかりません」

LogCat は次のエラーをスローします: "05-23 14:43:13.583: E/dalvikvm(329): クラス 'com.directionalviewpager.DirectionalViewPager' が見つかりませんでした。メソッド own.vvp.MainActivity.onCreate から参照されています"

誰かがすでにこのライブラリを使用していますか? 助けが必要です :)

ここに私のコードがあります:

マニフェスト:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="own.vvp"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="7" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

レイアウト:

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<com.directionalviewpager.DirectionalViewPager
    android:id="@+id/pager"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    />

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="2dp"
    android:orientation="horizontal">

    <Button
        android:id="@+id/horizontal"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_marginRight="1dp"
        android:text="Horizontal" />
    <Button
        android:id="@+id/vertical"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_marginLeft="1dp"
        android:text="Vertical" />

</LinearLayout>

</LinearLayout>

そして主な活動:

package own.vvp;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.widget.Button;
import com.directionalviewpager.DirectionalViewPager;


public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    //Set up the pager
    final DirectionalViewPager pager = (DirectionalViewPager)findViewById(R.id.pager);
    pager.setAdapter(new TestFragmentAdapter(getSupportFragmentManager()));

    //Bind to control buttons
    ((Button)findViewById(R.id.horizontal)).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            pager.setOrientation(DirectionalViewPager.HORIZONTAL);
        }
    });
    ((Button)findViewById(R.id.vertical)).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            pager.setOrientation(DirectionalViewPager.VERTICAL);
        }
    });
}
}

パッケージ名とメイン アクティビティの名前を除いて、例と同じコードなので、ライブラリの含め方が間違っているに違いないと思います。

ありがとう!

4

3 に答える 3

19

更新 (2014 年 2 月 1 日):このライブラリは非常に優れた代替手段です。現在、プロジェクトで使用していますが、問題なく動作しています。これはまだ維持されており、サポート ライブラリ r19 から標準の ViewPager に非常に近い修正を加えたものです。もう 1 つの利点は、gradle を使用している場合、Maven Central を介して簡単に統合して解決できることです。

https://github.com/castorflex/VerticalViewPager


Oleg Vaskevich のおかげで、現在の git ファイルと oleg の追加/修正から、動作する新しいdirectionalViewpager jar ファイルをコンパイルすることができました。現在のsupport-lib v4 r11で動作していることを確認できます。

https://dl.dropbox.com/u/24363935/android-directionalviewpager-1.2.1fixed.jar

うまくいけば、これは誰かに役立つでしょう:)

追加する: DirectionalViewPager.setAdapter(PagerAdapter adapter){...}; に IllegalArgumentException がありました。そのため、新しいjarを変更および修正し、再コンパイルしてアップロードしました。

于 2013-01-10T22:48:31.573 に答える
14

それ以降、ViewPagerが大幅に変更されたため、DVPは開発者によって非推奨になりました。しかし、それはそれが役に立たないという意味ではありません。

ソースを直接ダウンロードして、プロジェクト内に2つのソースファイルを含めてみてください。最新のサポート/互換性ライブラリを使用している場合は、のandroid.database.DataSetObserver代わりにを使用する必要がありますViewPager.DataSetObserver。お役に立てれば!

動作するはずの変更されたコード:https ://dl.dropbox.com/u/21007282/Code/DirectionalViewPager-works.zip

于 2012-08-18T12:35:56.043 に答える