У меня проблема с моим выравниванием в ActionBar.
Он центрирует изображение между значками, но я хочу, чтобы центрирование зависело не от кнопок, а от всего ActionBar. Как я могу этого добиться?
<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:orientation = "vertical">
<TextView
android:id = "@+id/action_bar_title"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:textColor = "#fff"
android:textSize = "24sp" />
<ImageView
android:id = "@+id/logo"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_marginTop = "-10dp"
android:layout_marginBottom = "20dp"
android:src = "@drawable/triptracker_logo"/>
</LinearLayout>
В моем классе Java:
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.actionbar_layout);
почему бы не использовать простой макет. Вы не используете какие-либо специальные функции панели действий
если вы не используете какую-либо конкретную функциональность панели действий, просто включите этот макет в свой основной файл макета и скройте панель действий.
Что я понял из вашего вопроса, так это то, что вы хотите, чтобы заголовок панели действий находился в центре независимо от значка.
Используйте RelativeLayout вместо LinearLayout
Я надеюсь, что это сработает
<?xml version = "1.0" encoding = "utf-8"?>
<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:orientation = "vertical">
<TextView
android:id = "@+id/action_bar_title"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:gravity = "center"
android:textColor = "#fff"
android:textSize = "24sp" />
<ImageView
android:id = "@+id/logo"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_marginTop = "-10dp"
android:layout_marginBottom = "20dp"
android:src = "@drawable/triptracker_logo"
android:layout_alignParentRight = "true"
android:layout_centerVertical = "true"
android:layout_centerInParent = "true"/>
</RelativeLayout>
В этом примере TextView текст будет выровнен по левому краю, а не по центру
о, извините, добавьте это в текстовое представление android:gravity = "center"
Используйте RelativeLayout в качестве корневого макета вместо LinearLayout
android:layout_centerInParent = "true" для текстового просмотра
android:layout_alignParentEnd = "true" для ImageView, чтобы установить его в конце
<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_gravity = "center">
<TextView
android:text = "Helo"
android:layout_centerInParent = "true"
android:id = "@+id/action_bar_title"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:textColor = "#fff"
android:textSize = "24sp" />
<ImageView
android:id = "@+id/logo"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_marginTop = "-10dp"
android:layout_marginBottom = "20dp"
android:src = "@drawable/star"
android:layout_centerVertical = "true"
android:layout_alignParentEnd = "true"/>
</RelativeLayout >
Попробуй это...
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:background = "#b19d9d"
android:orientation = "horizontal">
<FrameLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content">
<ImageView
android:id = "@+id/logo"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center_vertical|center_horizontal"
android:src = "@drawable/ic_male" />
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_gravity = "right|end"
android:gravity = "right|end"
android:orientation = "horizontal">
<TextView
android:id = "@+id/action_bar_title"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:gravity = "right|center_vertical"
android:text = "HELLO WORLD"
android:textColor = "#fff"
android:textSize = "24sp" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
Я думаю, что ваше объяснение неполное