我在应用程序中为每个活动使用自定义标题视图。在一项活动中,基于按钮单击,我需要更改自定义标题视图。现在,每次我调用setFeatureInt时,此方法都可以正常工作。
但是,如果我尝试更新自定义标题中的任何项目(例如更改标题上的按钮文本或文本视图),则不会进行更新。
通过代码进行调试表明,文本视图和按钮实例不为null,我还可以看到自定义标题栏。但是,文本视图或按钮上的文本未更新。还有其他人遇到过这个问题吗?我该如何解决?
谢谢。
编辑
这是我尝试过的。即使调用postInvalidate也不会更新。
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.text_title);
TextView databar = (TextView) findViewById(R.id.title_text);
databar.setText("Some Text");
databar.postInvalidate();
Button leftButton = (Button) findViewById(R.id.left_btn);
leftButton.setOnClickListener(mLeftListener);
leftButton.setText("Left Btn");
leftButton.postInvalidate();
Button rightBtn = (Button) findViewById(R.id.right_btn);
rightBtn.setOnClickListener(mRightListener);
rightBtn.postInvalidate();
正确的方法如下:
requestWindowFeature( Window.FEATURE_CUSTOM_TITLE );
setContentView( R.layout.my_layout );
getWindow().setFeatureInt( Window.FEATURE_CUSTOM_TITLE, R.layout.my_custom_title );
super.onCreate( savedInstanceState );
请注意,这些语句的顺序非常重要。
如果您在其他任何语句之前调用super.onCreate(),则会得到一个空白的标题栏,该标题栏可以找到标题栏ID并从中删除所有视图的方法可以解决,但不建议这样做。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。