0

例如,我有两个版本的自定义View调用MyView(用于 API 4-10)和MyView_v11(用于 API 11+)。它们都继承自ViewAndroid 中的类。MyView_v11只需扩展MyView和覆盖仅在 API 11+ 中可用的View一种方法。

目前我正在使用不同的布局文件,例如:

layout
    main_activity.xml
layout-v11
    main_activity.xml

第一个布局定义了一个指向 的视图,MyView第二个布局更改该视图并将其指向MyView_v11

我的问题:我怎样才能只使用一个文件,比如针对不同 API 级别layout/main_activity.xml 一些单独的辅助布局文件?因为在布局中还有很多其他视图,但只有一个自定义视图。R.style.AppTheme我想使用与创建新示例 Android 项目时Andoid SDK 生成的技术相同的技术:

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.xml. 然后,您只需要两个 API 特定版本的简单my_view_layout.xml布局,并且只需要一个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 回答