我使用android:configChanges不重新创建方向更改的活动,并且除了一件事情之外所有工作都很好,所选标签的标题在更改后消失,我不知道为什么。为了设置特定选项卡的警告,我使我的选项卡(actionbar.tab)获得自定义视图,可能问题在这里。 我已经用logcat做了一些测试,文本仍然在textview上。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Log.e("irc", "Printing all the tab titles");
for (int i = 0; i < actionBar.getTabCount(); i++) {
ActionBar.Tab tab = actionBar.getTabAt(i);
String texttab = ((TextView) tab.getCustomView().findViewById(
R.id.tabtitle)).getText().toString();
Log.e("irc", "Tab on " + i + ": " + texttab);
}
// THE LOGCAT PRINTS ALL THE TAB TITLE, INCLUDING THE MISSING TITLE
}
也在Textview上尝试了View.VISIBLE和setTextColor()。
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
RelativeLayout relative = (RelativeLayout) actionBar.getSelectedTab()
.getCustomView();
TextView tv = (TextView) relative.findViewById(R.id.tabtitle);
tv.setVisibility(View.VISIBLE);
tv.setTextColor(Color.WHITE);
//DOESNT WORK
}
标签自定义布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dip"
android:layout_height="64dip"
android:layout_marginLeft="-3dip"
android:layout_marginRight="-3dip"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/tabtitle"
style="?android:attr/tabWidgetStyle"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerHorizontal="true" />
</RelativeLayout>
变更前的活动: https://www.dropbox.com/s/m7ntqk7h4g9vraq/2014-05-16%2003.33.09.png
变更后的活动: https://www.dropbox.com/s/iltbsfcgfraowri/2014-05-16%2003.33.16.png
提前感谢您的帮助。
更新
我在操作栏上添加标签的活动方法。
public void addPVTTab(String title) {
MyService.log("Adicionando tab " + title + ".");
Tab tab = actionBar
.newTab()
.setCustomView(createTabCustomView(title))
// .setText(title) customview
.setTabListener(
new MyTabListener<ChatFragment>(this, title,
ChatFragment.class));
actionBar.addTab(tab);
}
private RelativeLayout createTabCustomView(String title) {
RelativeLayout view = (RelativeLayout) getLayoutInflater().inflate(
R.layout.tabtitle_layout, null);
((TextView) view.findViewById(R.id.tabtitle)).setText(title);
return view;
}
只要其他用户向我发送新的私人消息,就可以在此过程中的任何时间调用此消息。