如何在中心或Android的任何地方对齐Activity的标题?

时间:2011-07-04 09:16:26

标签: android layout alignment

((TextView)((FrameLayout)((LinearLayout)((ViewGroup)getWindow().getDecorView()).getChildAt(0)).getChildAt(0)).getChildAt(0)).setGravity(Gravity.CENTER);

我已使用上面的代码在center中调整我的活动标题,但它会给我一个错误,即“FrameLayout无法解析为某种类型”,如果删除了{{1}那么它会在FrameLayout中给我同样的错误。我还通过添加以下行来更改LinearLayout文件中的标题栏:

android.xml

现在我正在尝试 <application android:label="@string/app_name"> <activity android:name=".OptionsmenuAct" android:label="@string/app_name" android:theme="@android:style/Theme.Translucent"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 根据我的需要,并希望增加align的大小。

我该怎么做才能帮助我............

3 个答案:

答案 0 :(得分:3)

您实际上想要使用自定义标题视图。看看这个问题:how to set custom title bar TextView Value dynamically in android?

答案 1 :(得分:1)

((TextView)((LinearLayout)((ViewGroup) getWindow()
   .getDecorView()).getChildAt(0)).getChildAt(0)).setGravity(Gravity.CEN‌​TER); 

这对我有用。 但这是一种无证的方式。众所周知,谷歌彻底改变了未记录的数据结构,并且无法保证这种特殊技术将来能够发挥作用。所以我建议你在try / catch块中使用它,比如:

try {   
((TextView)((LinearLayout)((ViewGroup) getWindow()
   .getDecorView()).getChildAt(0)).getChildAt(0)).setGravity(Gravity.CENTER);
        } catch (Exception e1) {
            e1.printStackTrace();
        }

答案 2 :(得分:1)

我明确地改变了 usman 方法:

((TextView)getWindow().getDecorView().findViewById(android.R.id.title)).setGravity(Gravity.CENTER);