1

我有一个以编程方式创建的 LinearLayout,并且我在这个布局中放置了按钮以充当手风琴。轻按时,它们会展开以显示,并且工作正常。

我正在使用 9 个补丁图像来添加每个手风琴图像所需的底部边框和箭头/三角形。我想要做的是翻转箭头(使用另一个 9 补丁图像)并将先前选择的项目返回到另一个箭头/三角形。

我有第一个工作:触摸时翻转箭头。我只是将新图像应用于被点击的按钮。

我不知道如何告诉其他项目翻转回来。我的计划是针对所有按钮,应用“未翻转”箭头,然后将“翻转”箭头应用于点击按钮。

我尝试使用:

for(int x=0;x<accordionMenu.getChildCount();x++){
     accordionMenu.getChildAt(x).setBackground(accordStyle);
}

但这也针对手风琴内部的项目,而不仅仅是按钮。

在定位点击的按钮以应用“翻转”箭头之前,如何定位所有按钮和仅应用“未翻转”箭头的按钮?

4

1 回答 1

0

在应用背景颜色之前用于instanceof检查 View 是 Button 还是其他 View:

 for(int x=0;x<accordionMenu.getChildCount();x++){
        View view = accordionMenu.getChildAt(i);          
        if (view instanceof Button) {
           view.setBackground(accordStyle);
         }
   }
于 2014-01-05T04:51:50.470 回答