我的Android项目构建目标是5.1.1 API 22。
这个应用在除了Lollipop以外的所有操作系统版本上都可以工作。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
使用全局变量,但我仍然得到相同的结果。
这个应用程序是一个非常基本的应用程序,你可以在这里下载 这里 ,并且正在运行Java编译器兼容性级别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" >
显示数据:
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]));
}
displayData
是用来做什么的? - Vladimir PetrakovichisEnabled()
中这样做?你应该在getView()
中这样做。 - Vladimir PetrakovichisEnabled()
在Lollipop上无法正常工作吗? - krikarasetOnItemSelectedListener
吗? - krikara