我一直在使用以下解决方法将活动标签居中(无需在 XML 布局中使用自定义标题):
((TextView)((FrameLayout)((LinearLayout)((ViewGroup) getWindow().getDecorView()).getChildAt(0)).getChildAt(0)).getChildAt(0)).setGravity(Gravity.CENTER);
这很好用,但每隔一段时间我就会看到一个用户(在 Google Play 上)得到一个
java.lang.ClassCastException:com.android.internal.widget.ActionBarView 不能转换为 android.widget.TextView
这些可能是运行 Android 3.x 或更高版本的平板电脑用户。
没有实现我自己的自定义标题,可以让我直接访问活动标签,你能推荐另一种方法来避免ActionBarView
ClassCastExceptionTextView
吗?
也许检查应用程序当前运行的 Android 版本并通过另一个级别getChildAt(0)
?