Когда вы говорите, что ListView покрывает весь экран, вы ссылаетесь на результат на реальном телефоне или, например, на предварительный просмотр в Eclipse?Если в последнем случае он отображается правильно, то, скорее всего, проблема в вашем Java-коде.
В любом случае, я не могу воспроизвести вашу проблему ни на одном из них.Однако есть две вещи, которые я бы попробовал:
Во-первых, измените порядок вызовов в методе onCreate()
вашей Деятельности.В частности, не выполняйте AsyncTask до тех пор, пока вы не инициализируете ListView, так как вы используете его в onPostExecute()
.Хотя это, вероятно, не будет иметь значения, вам лучше избегать любых шансов на состояние гонки.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list=(ListView)findViewById(R.id.list);
TextView tv = (TextView)findViewById(R.id.tv);
// start task after 'list' is initialized.
new TheTask().execute();
}
Во-вторых, файл макета, содержащий ваш ListView, излишне сложен.Желательно, чтобы макеты были максимально простыми и ограничивали вложенность для более плоской иерархии.Вы можете просто избавиться от устаревших LinearLayouts и, если вы предпочитаете работать с ними, изменить родительский элемент на один.Кроме того, android:orientation="vertical"
не является допустимым атрибутом для RelativeLayout, поэтому обязательно удалите его.
То же RelativeLayout, но без LinearLayouts:
<?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="#FFFFFF" >
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Testing 123" />
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tv"
android:layout_marginBottom="30dp" />
</RelativeLayout>
То же поведение, но с LinearLayout в качестве корневого элемента:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:orientation="vertical" >
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Testing 123" />
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginBottom="30dp" />
</LinearLayout>