private void switchTitle(int titleID, String titleText, Boolean titleGoBack) { getWindow().setFeatureInt(getWindow().FEATURE_CUSTOM_TITLE, titleID); if (titleText.length() > 0) { menuTitleTv = (TextView) findViewById(R.id.gTvMenuTitle); menuTitleTv.setText(titleText); // titleText1 = titleText; // new Thread(runnable).start(); Log.i(TAG, "±êìaà??a£o" + titleText); } if (titleGoBack) { ImageView backIv = (ImageView) findViewById(R.id.gIvGoBack); backIv.setOnClickListener(this); } } 方法中第一次使用setText可以生效,之后再次调用方法,setText就无效,使用线程方法也无效,何解??? |
|
可能是你titleID用的布局和gTvMenuTitle所在的不是同一个布局
gTvMenuTitle所在的布局由setContentView决定(如果是一个activity) |
|
是同一个layout,第一次点击是无问题的,再次使用这个方法就无效了 |
|
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title); 多次调用上面这个函数,会让布局出现多个children的情况,但操纵的永远仅仅是底层的 |
|
请问应该怎么修改??? |
|
40分 |
stackoverflow不愧是大神云集
http://stackoverflow.com/questions/820398/android-change-custom-title-view-at-run-time 大概意思应该是反射获取那个布局,清空再重来一次…… —————— 或者试试隐藏 |
stackoverflow上的方法,非常感谢你 |