Как выровнять заголовок Activity по центру или где-нибудь в Android? - PullRequest
0 голосов
/ 04 июля 2011
((TextView)((FrameLayout)((LinearLayout)((ViewGroup)getWindow().getDecorView()).getChildAt(0)).getChildAt(0)).getChildAt(0)).setGravity(Gravity.CENTER);

Я использовал приведенный выше код для выравнивания заголовка своей деятельности в center, но он выдаст мне ошибку, т. Е. «FrameLayout не может быть преобразован в тип», и если удалить 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 в соответствии с моими потребностями, а также хочу увеличить размер title text.

Как я могу сделать это, пожалуйста, помогите мне ............

Ответы [ 3 ]

3 голосов
/ 04 июля 2011

Вы действительно хотите использовать для этого пользовательский вид заголовка.Проверьте этот вопрос: как динамически установить пользовательскую строку заголовка TextView Value в Android?

1 голос
/ 04 июля 2013

Я делаю немного чёткий вариант метода usman :

((TextView)getWindow().getDecorView().findViewById(android.R.id.title)).setGravity(Gravity.CENTER);
1 голос
/ 14 ноября 2012
((TextView)((LinearLayout)((ViewGroup) getWindow()
   .getDecorView()).getChildAt(0)).getChildAt(0)).setGravity(Gravity.CEN‌​TER); 

Это сработало для меня.Но это недокументированный способ сделать это.Google, как известно, радикально меняет недокументированные структуры данных, и нет никаких гарантий, что этот конкретный метод будет работать в будущем.Поэтому я рекомендую использовать его в блоке try / catch, например:

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