版本配置无法正常运行的Android版面

我在res / layout-v19中有一个布局,activity_read为:

<FrameLayout ...>
...
<include layout="@layout/main_toolbar" />

<View
    android:id="@+id/read_view"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:background="#f00"
    android:tag="V19"
    />
...

我在res / layout中有另一个activity_read:

<RelativeLayout ...>
...
<include layout="@layout/main_toolbar" />

<View
    android:id="@+id/read_view"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:background="#f00"
    android:tag="V1"
    />
...

我正在尝试在Activity中加载activity_read布局:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_read);
    View read = findViewById(R.id.read_view);
    Log.v(TAG,"SDK: " + read.getTag()); //Prints SDK: V1
}

我在Lollipop模拟器上运行此示例,因此对于基于平台版本的资源的documentation says,它应该选择res / layout-v19中的布局.
但是,始终会加载res / layout中的activity_read布局,如“SDK:V1”日志所示.

我也试过看看我是否可以根据平台级别加载其他资源,即值/数字中的整数:

<integer name="test_num">1</integer>

和值-v19 /数字:

<integer name="test_num">19</integer>

哪个工作正常:

Log.v(TAG,"NUMBER: " + getResources().getInteger(R.integer.test_num)); //Prints NUMBER: 19

我也尝试将它移动到res / layout-v21,它实际上工作,但它应该适用于layout-v1到layout-v21以及文档.

我浪费了相当多的时间来研究这个问题,文档是错误的还是我错过了什么?

提前致谢.

解决方法

我有同样的问题 – 我创建了一个版本的v19版本,但在Lollipop上它加载了非v19版本.所以我在代码中进行了API检查,并在那里夸大了正确的布局:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        v = inflator.inflate(R.layout.item_showdetail_asset_kitkat,this);
    } else {
        v = inflator.inflate(R.layout.item_showdetail_asset,this);
    }

不是理想的解决方案,但它有效……

所以对于你问题中的onCreate(),它看起来像这样:

protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        setContentView(R.layout.activity_read_kitkatversion);
   }else{
        setContentView(R.layout.activity_read);
   }
   View read = findViewById(R.id.read_view);
   Log.v(TAG,"SDK: " + read.getTag());
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...