<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版面全部内容,希望文章能够帮你解决版本配置无法正常运行的Android版面所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)