我的Android项目构建目标是5.1.1 API 22
此应用程序似乎适用于除Lollipop之外的每个操作系统版本。棒棒糖重新调整一些活动的高度(否定可滚动的布局)以及扰乱微调器。
单击微调器上的特定位置将在应用程序中输入不同的位置。我不知道为什么,我也不知道如何解决这个问题。在某些情况下,即使单击微调器上的按钮,它也会在微调器上注册最底部的可见按钮。对于一些微调器,它不允许用户滚动。
我的一个故障微调器代码是这样的:
ArrayAdapter<String>adapterl4 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item,hbmlevel){
public boolean isEnabled(int position){
displayData(position);
return true;
}
};
selecthbm = (Spinner)findViewById(R.id.selecthbmlvl);
adapterl4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
selecthbm.setAdapter(adapterl4);
selecthbm.setOnItemSelectedListener(this);
我也尝试为函数displayData
使用全局变量,但我仍然得到相同的结果。
该应用是一款非常基本的应用,您可以下载here并在Java Compiler Compliance 1.7级上运行
我的xml的开头是这样的:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="fill_parent"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:fillViewport="true"
android:background="#C2DFFF">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
displayData:
public void displayData(int pos){
herolvlTV.setText(hbmherolvl[pos]);
hbmshardTV.setText(getResources().getString(R.string.shards)+" " +String.valueOf(hbmshards[pos]));
hbmexpTV.setText(getResources().getString(R.string.maxexp)+" " +String.valueOf(hbmmaxexp[pos]));
}
答案 0 :(得分:3)
问题在于:
ArrayAdapter<String>adapterl4 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item,hbmlevel){
public boolean isEnabled(int position){
displayData(position);
return true;
}
};
isEnabled
功能对Lollipop无效。解决方案是将selecthbm.setOnItemSelectedListener(this);
更改为selecthbm.setOnItemSelectedListener(new OnItemSelectedListener(){...});
并完整删除isEnabled
函数。
我不知道为什么isEnabled
功能不起作用。如果有人想提供解释,我可以奖励赏金。
答案 1 :(得分:2)
棒棒糖前棒棒糖的实施方式不同,虽然我无法分析您的代码并提供现成的解决方案,但我希望您能在这里找到解决方案
https://blog.danielbetts.net/2015/01/02/material-design-spinner-toolbar-style-fix/