Android 当选中此选项更改其他视图时,滚动时Coverflow会自动重新居中
亲爱的社区: 我有一个非常棘手的问题。首先,我建立了一个“选择者”活动,它只不过是左侧的一个车轮视图,中间是一个Coverflow,下面是另一个(较小的)Coverflow。顺便说一句,CoverFlow是一个逻辑被覆盖的库 中央盖流使用底座适配器。我创建了一些列表集,每次coverflow获得新内容时,我都会使用其中一个列表创建BaseAdapter的新实例。在我的例子中,这是在选择下部CoverFlow中的项目时完成的。所以我实现了一个OnItemSelectedListener,以检查何时发生这种情况。滚动此coverflow会导致视图始终“notifyDataSetChanged”,并在某些情况下更改适配器。现在这就像一个符咒 由于此选择器(中心coverflow)中有很多对象,我决定继续使用游标适配器来提高性能。现在CursorAdapter似乎没有notifyDataSetChanged()方法,所以我复制了与BaseAdapter相同的代码逻辑,并在我的代码中使用了它。下Coverflow仍然使用相同的适配器(在本例中是ListAdapter,实现了SpinnerAdapter)。现在-在执行完全相同的逻辑时,在中央CoverFlowAdapter上的每次notifyDataSetChanged()调用后,下部coverflow会重新居中。我真的不明白。我不会在这里发布整个逻辑,因为这将是大约5个类,但问题是这一点:Android 当选中此选项更改其他视图时,滚动时Coverflow会自动重新居中,android,gallery,coverflow,baseadapter,android-cursoradapter,Android,Gallery,Coverflow,Baseadapter,Android Cursoradapter,亲爱的社区: 我有一个非常棘手的问题。首先,我建立了一个“选择者”活动,它只不过是左侧的一个车轮视图,中间是一个Coverflow,下面是另一个(较小的)Coverflow。顺便说一句,CoverFlow是一个逻辑被覆盖的库 中央盖流使用底座适配器。我创建了一些列表集,每次coverflow获得新内容时,我都会使用其中一个列表创建BaseAdapter的新实例。在我的例子中,这是在选择下部CoverFlow中的项目时完成的。所以我实现了一个OnItemSelectedListener,以检查何时
private OnItemSelectedListener itemSelListener = new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// if(!selectedByClicking){
switchModelType(arg1.getId());
// }
}
private void switchModelType(int id){
int oldMode = mode;
mode = id;
for(int i = 0; i < currentColors.length; i++){
if(currentColors[i] != null)
currentColors[i].isSelected = false;
}
if(currentColors[mode] != null)
currentColors[mode].isSelected = true;
if(coverFlow.getAdapter() != null){
((SelectionObjectCursorAdapter)
coverFlow.getAdapter()).notifyDataSetChanged();
// if(decorIsWooden)
// checkIfWoodDecorAdapter(oldMode);
}
}
private-OnItemSelectedListener itemSelListener=new-OnItemSelectedListener(){
@凌驾
已选择公共视图(适配器视图arg0、视图arg1、内部arg2、,
长arg3){
//如果(!通过单击选择){
switchModelType(arg1.getId());
// }
}
私有void switchModelType(int-id){
int oldMode=模式;
模式=id;
对于(int i=0;i
在这部分代码中的任何地方都没有触及下CoverFlow,在类中的任何地方也没有触及下CoverFlow。没关系。虽然我搜索了几天这个错误,但现在我找到了解决方案 问题是,我以编程方式创建了下部coverflow,从而以编程方式将两者的高度设置为layout_height。每次我更改coverflow的适配器时,它都会调用其测量方法,从而也会调用下部coverflow的测量方法(因为它们由layout_height链接)。在XML中设置此选项,将布局和添加到超线性布局中,即可解决此问题 感谢上帝