fill_parent не растягивает фоновое изображение
Я схожу с ума здесь. Я клянусь, у меня была эта работа тысячу раз прежде, и сейчас, похоже, ничего не ведется правильно. Я должен делать что-то глупое. Несколько дней назад у меня были проблемы с фоном в элементе представления списка, не заполняющего родительский элемент, чтобы растянуть по высоте элемента представления списка. Я наконец сдался и просто жестко запрограммировал высоту, чтобы исправить это. Сейчас я просто пытаюсь установить фон всей деятельности и заставить его заполнить родительский элемент, чтобы изображение покрывало весь экран. Это действие находится на вкладке. Вот код для контроллера вкладок и действия, с которыми у меня возникают проблемы.
Расположение вкладок:
<?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 ответа
Я решил это, установив для ListView высоту wrap_content. Я понятия не имею, почему fill_parent вызывал такое поведение на этом телефоне, но теперь он работает правильно, так что все хорошо. Спасибо всем!
Попробуйте эту логику с фрагментами, потому что теперь вкладка устарела. Это мое мнение, и оно может быть неправильным, но однажды попробуйте это, чувак.
Я просто смотрел на эту самую проблему, и нашел это:
В основном, тема по умолчанию на Bionic устанавливает android:overScrollFooter в ListView. Установка @null обеспечит поведение, которое демонстрируют другие устройства.