1

Android Studio でViewPagerクラス自体を変更したい。現在、ライブラリの依存関係として support-v4 ライブラリがありますが、Android Studio では外部ライブラリを直接編集できないことがわかっています。

試行 1: プロジェクト内の java.android.support.v4.view パッケージ内に ViewPager をコピーして貼り付けようとしました。修正してテストしたところ、修正されたものではなくViewPagerの標準機能を表示していたため、動作していないようでした。

試行 2:サポート ライブラリと区別するために、パッケージ名を com.example.view に変更しようとしました。ViewPager の一部の機能は適切なパッケージ名に依存しているため、うまく機能せず、ClassCastException などのエラーが発生しました。

試行 3: ViewPager を、settings.gradle に含め、「app」モジュールの依存関係として追加した「lib」という新しく追加されたモジュールに入れようとしました。どちらも機能していないようでした。

私が試していないのは、support-v4 gradle 依存関係を取り除き、代わりにプロジェクト内のソース コード全体をコピー アンド ペーストすることでした。ViewPager クラスをオーバーライドするだけで、support-v4 ライブラリを最新の状態に保ちたいので、これはやりたくないです。(また、ソース コードの最新バージョンを入手する方法もわかりません。主要な API リリースごとにオープン ソースしか公開していないと聞いています。)

ここから何ができますか?前もって感謝します。

4

2 に答える 2

0

ここから何ができますか?

試行 2 をやり直します。必要に応じて、他のクラス (例: PagerAdapter) をcom.example.viewパッケージにコピーし、それらのクラスを参照するようにアプリ コードを切り替えます。基本的に、あなたは を forkViewPagerしています。それには、その 1 つのクラスだけでなく複数の fork が必要になる場合があります。

インジケーターなど、実数を期待する他のコードはViewPagerフォークでは機能せず、それ自体をフォークする必要があることに注意してください。

代わりに単純なサブクラスを介して変更を処理できるかどうかを検討することをお勧めします。

Android Studio では外部ライブラリを直接編集できないことを知っています

さらに、質問の後半で指摘したように、ライブラリを変更した場合、そのライブラリが変更されるたびにそれらの変更を再適用する必要があります。

また、最新バージョンのソース コードを入手する方法もわかりません。

Java はハード ドライブの Android リポジトリにあります。ファイルを探し...sources.jarます。

于 2016-09-25T18:09:44.463 に答える
0

一般に、自分が何をしているのか本当によくわかっていない限り、サードパーティのライブラリを変更することはお勧めできません。すべてのクラスとメソッドの依存関係を理解し​​ていなくても、すべてを簡単に壊すことができます。

非常に優れた代替手段は、カプセル化または継承です。どちらも十分に確立されたオブジェクト指向の原則です。カプセル化では、ViewPager 型のメンバー フィールドを作成し、必要に応じてメソッド呼び出しをデリゲートします。継承により、ViewPager を拡張し、異なる動作を提供したいメソッドをオーバーライドします。ほとんどの場合、ViewPager を通常使用する場所で新しいクラスを使用できるようにするには、継承が最適なソリューションです。

于 2016-09-25T18:31:02.350 に答える