我有一个显示两个标签的TabHost。我的第一个标签上有一个SeekBar,当它更改时,会更改对象ObjectA.setValue(newValue)
的值。
我的第二个标签是ExpandableList。列表 - 当我扩展了一个组时 - 将在ProgressBar中反映ObjectA的值:
public View getChildView(int groupIndex, int childIndex, boolean isLastChild, View convertView, ViewGroup parent) {
... // ObjectA is retrieved
LinearLayout layout;
if (convertView == null) {
layout = (LinearLayout) LayoutInflater.from(MyApp.getContext()).inflate(R.layout.rooms_room_list_row, parent, false);
} else {
layout = (LinearLayout) convertView;
}
final ProgressBar pbLevel = (ProgressBar)layout.findViewById(R.id.ddLevel);
pbLevel.setProgress(objectA.getValue());
这种方法很有效,但以下情况除外:
getChildView
方法中出现断点,我可以验证我的新objectA值是否设置为5(再次,如预期的那样),我可以看到ProgressBar的值设置为5,但是屏幕没有反映这种变化 - 它仍然坚持显示50%。如果我将该组折叠并重新打开它,它将起作用,现在将反映出5%的值。那么当我简单地切换回视图时会发生什么?在重新创建视图时,为什么我的屏幕在第一次运行getChildView
方法后不会反映5%?