利用するライブラリ等によっては、android.support.v4.app.Fragmentを利用しなければならなかったり、 android.app.Fragmentを利用しなければならなかったりとまちまちかと思います.

ここではそのような場合の対処法をまとめました.

課題

そもそも、android.support.v4.app.Fragment と android.app.Fragmentは互いに何の関係性もないクラスとなっています.

そのため、v4版を利用するべきところで通常版を利用してしまったり、通常版を利用すべきところでv4版を利用してしまうとエラーとなります.

解決法

1.片方にそろえる

一番シンプルでわかりやすい方法です.基本的にはサポートできる端末を広げるためにv4版に揃えることになるかと思います.

ただし、複数のライブラリを利用する場合でそれぞれサポートしているFragmentが異なる場合のように、この方法がとれない場合があります.

2.自分でカスタムする

例えばv4ライブラリ内に存在するクラスを利用したいが、Fragmentは通常版を利用したいといった場合、利用したいクラスを自分で実装するという方法が考えられます.

これは(利用したいクラスに寄りますが)、比較的手間のかからない方法です.

適当な場所に新しくクラスを作成し、v4内のクラスのソースをコピーします.

その後、v4版のFramgent/FragmentManagerといったFragment関連のimport文を削除し、通常版をインポートするようにします.

 

Leave a Reply

Your email address will not be published. Required fields are marked *