fill_parent не растягивает фоновое изображение - PullRequest
0 голосов
/ 06 октября 2011

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

Расположение вкладок:

<?xml version="1.0" encoding="utf-8"?>
<TabHost 
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="5dp">

    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

        <FrameLayout
            android:id="@android:id/tabcontent"            
            android:layout_width="fill_parent"            
            android:layout_height="fill_parent">

        </FrameLayout>
</LinearLayout>
</TabHost>

Неполадки, связанные с работой:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background">

<RelativeLayout
    android:id="@+id/localHeader"
    android:layout_width="fill_parent"
    android:layout_height="50dip"
    android:background="@drawable/header2">

    <Button
        android:id="@+id/changeCityButton"
        android:layout_width="80dip"
        android:layout_height="30dip"
        android:layout_marginRight="10dip"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:onClick="buttonChangeOnClickListener"
        android:text="Change"
        android:textColor="#FFFFFF"
        android:background="@drawable/local_deal_redeem_button" />

    <TextView
        android:id="@+id/cityName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dip"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@id/changeCityButton"
        android:textSize="20dip"
        android:textColor="#FFFFFF"
        android:textStyle="bold"
        android:shadowColor="#FF000000"
        android:shadowDx="1"
        android:shadowDy="1"
        android:shadowRadius="1"/>

</RelativeLayout>

<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@id/localHeader"
    android:fastScrollEnabled="true"
    android:cacheColorHint="#00000000"
    android:divider="@null"
    android:dividerHeight="0px"/>

</RelativeLayout>

Эта проблемакажется, происходит только на новом Bionic.«@ drawable / background» будет растягиваться только до тех пор, пока длина списка длинна.И если в списке нет элементов, он ничего не показывает.Я даже пытался вырвать его из макета и сделать из него только изображение, и это тоже не сработало.Как будто где-то есть тег wrap_content, который мне не хватает.Обычно я бы просто сказал, что это что-то нехорошее с Bionic, но, видя, как у меня возникли эти проблемы с фоном ListView, я думаю, что я что-то где-то напутал.Пожалуйста, помогите !!

Также в моем манифесте:

<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:resizeable="true" android:anyDensity="true"></supports-screens>

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

РЕДАКТИРОВАТЬ: Я только что понял, что если поместить изображение в представление прокрутки "fill_parent", фон будет соответственно растягиваться.Однако, поскольку экран содержит ListView, я не могу пойти по этому пути.Здесь что-то дурацкое.

РЕДАКТИРОВАТЬ 2: Я только что вырвал просмотр списка, и он работал отлично.Это как-то связано со списком.

РЕДАКТИРОВАТЬ 3: Я только что решил проблему, установив для высоты ListView значение "wrap_content".Я понятия не имею, почему «fill_parent» вызывал такое поведение на этом устройстве, но это исправлено, так что теперь все хорошо.Я не могу ответить самостоятельно в течение еще 6 часов, поэтому, если кто-то захочет поставить это как ответ, я выберу его как правильный.Спасибо всем!

Ответы [ 3 ]

1 голос
/ 07 октября 2011

Я решил это, установив для ListView высоту wrap_content. Я понятия не имею, почему fill_parent вызывал такое поведение на этом телефоне, но теперь он работает правильно, поэтому все хорошо. Спасибо всем!

0 голосов
/ 26 апреля 2012

Я только что изучил эту самую проблему и обнаружил следующее:

http://community.developer.motorola.com/t5/MOTODEV-Blog/Why-Does-My-ListView-Look-Different/ba-p/17462

По сути, тема по умолчанию на устройствах Bionic android: overScrollFooter в ListView.Установка его в @null обеспечит поведение, которое демонстрируют другие устройства.

0 голосов
/ 06 октября 2011

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

...