0

たとえば、(API 4-10の場合)と(API 11+の場合)Viewという2つのバージョンのカスタムがあります。どちらもAndroidのクラスから継承しています。API11以降でのみ使用可能な1つのメソッドを拡張してオーバーライドするだけです。MyViewMyView_v11ViewMyView_v11MyViewView

現在、次のようなさまざまなレイアウトファイルを使用しています。

layout
    main_activity.xml
layout-v11
    main_activity.xml

最初のレイアウトは、を指すビューを定義しMyView、2番目のレイアウトは、そのビューを変更してそれを指すだけMyView_v11です。

私の質問:異なるAPIレベルのいくつかの個別のヘルパーレイアウトファイルのように、1つのファイルのみを使用するにはどうすればよいですか?レイアウトには他にもたくさんのビューがありますが、カスタムビューは1つしかないためです。新しいサンプルAndroidプロジェクトを作成するときにAndoidSDKが生成するのと同じ手法を使用したいと思います。layout/main_activity.xml R.style.AppTheme

values:
    <style name="AppTheme" parent="@android:style/Theme" />
values-v11:
    <style name="AppTheme" parent="@android:style/Theme.Holo" />

編集済み:私は他の解決策を好みcommonswareます。これが正しいことを願っています。

4

1 に答える 1

0

いつでもMyView独自の個別のレイアウトを配置し、でincludeそれを参照するために使用できますmain_activity.xmlmy_view_layout.xml次に、単純なレイアウトの2つのAPI固有のバージョンと1つだけが必要になりますmain_activity.xml。これにより、できるだけ少ないxmlをコピーできるようになります。

 layout
     main_activity.xml
     my_view_layout.xml
 layout-v11
     my_view_layout.xml

http://developer.android.com/training/improving-layouts/reusing-layouts.html

于 2013-03-15T04:16:26.627 に答える