这是我的代码:
public void openBottomSheet(long id) {
final CoordinatorLayout coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinator_layout);
_bottomSheet.setState(BottomSheetBehavior.STATE_EXPANDED);
_bottomSheet.setPeekHeight(140);
coordinatorLayout.requestLayout();
Item item = _selected.getItem(id);
final String titleText = item.getTitleText();
_bottomSheetTitle.setText(titleText);
coordinatorLayout.requestLayout();
int imageResource = (id > 5) ? R.drawable.ic_closed : R.drawable.ic_open;
_bottomSheetState.setBackgroundResource(imageResource);
coordinatorLayout.requestLayout();
coordinatorLayout.invalidate();
}
首先,我广泛地讨论https://code.google.com/p/android/issues/detail?id=205226中描述的问题,他们建议requestLayout()
是解决方案。
它确实解决了这个问题。但是,我发现第一次时间我打开底部工作表(通过单击UI中的其他元素)文本无法加载。第二,第三,第四等时间,文本 更新。因此,只是在初始负载上,它不能正常工作。
第一次尝试时,图像资源似乎正常加载。它只是没有更新的textview。
有人有任何建议吗?
我已经尝试将requestLayout()
放在很多地方,看它是否会有所作为。