Android — Невидимое заполнение строки заголовка

#android

#Android

Вопрос:

Итак, я видел несколько случаев, когда заполнение было проблемой в пользовательской строке заголовка, но это кажется уникальным, и я хотел бы посмотреть, сможет ли кто-нибудь пролить на это свет.

Вот что у меня есть:

Справа от кнопки настройки есть заполнение, которого не должно быть. Я хочу немного дополнить текст в конце, но, чтобы доказать свою точку зрения, это без набора дополнений. Вот макет пользовательской строки заголовка.

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@ id/container"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFF" >
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
        <ImageView 
            android:id="@ id/titleImage"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:paddingLeft="8dip"
            android:paddingTop="8dip"
            android:paddingBottom="8dip"
            android:src="@drawable/icon" />
        <TextView android:id="@ id/customtitlebar"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:text="COMPANY"
            android:textSize="20dip"
            android:textColor="#205cc7"
            android:textStyle="bold"
            android:paddingTop="15px" />
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="right" >
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:paddingTop="8dip"
            android:paddingBottom="8dip"
            android:src="@drawable/configure" />
    </LinearLayout>
</RelativeLayout>
  

Я подумал, что, возможно, макет, которому я присвоил фиктивный идентификатор «контейнер», также был отключен, и проблема была за пределами этого макета, но, когда я меняю его фон на красный, он занимает весь экран.

Есть ли у кого-нибудь решение, кроме как скрыть строку заголовка ОС и сделать ее заголовком для каждого макета экрана?

Комментарии:

1. Вам нужно изменить дизайн этого заголовка, поскольку это усложняет способ, которым вы его реализовали сейчас. Вы находитесь в RelativeLayout почему бы вам этим не воспользоваться?

Ответ №1:

Попробуйте установить android:layout_alignParentRight=»true» для LinearLayout, который должен быть растянут до правого края RelativeLayout.

Кроме того, я согласен с Октавианом Дамианом в том, что ваше определение слишком сложное, чтобы получить желаемый макет.

Ответ №2:

Этот макет имеет ту же проблему, что и первое изображение. Он использует alignParentRight и упрощает макет.

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFF" >
    <ImageView 
        android:id="@ id/titleImage"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:paddingLeft="8dip"
        android:paddingTop="8dip"
        android:paddingBottom="8dip"
        android:src="@drawable/icon" />
    <TextView android:id="@ id/customtitlebar"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:paddingLeft="55dip"
        android:text="COMPANY"
        android:textSize="20dip"
        android:textColor="#205cc7"
        android:textStyle="bold"
        android:paddingTop="15px" />
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_alignParentRight="true"
        android:paddingTop="8dip"
        android:paddingBottom="8dip"
        android:src="@drawable/configure" />
</RelativeLayout>