XML-макет не отображается правильно - PullRequest
2 голосов
/ 24 января 2011

Мне действительно трудно понять, что здесь происходит.У меня есть этот XML-файл, описывающий макет:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical" 
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">

   <SurfaceView android:id="@+id/surface"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center">
    </SurfaceView>

   <TextView android:id="@+id/text_kb_streamed"
             android:layout_width="fill_parent" 
             android:layout_height="wrap_content"
             android:textStyle="bold" 
             android:text="Streaming .mp3 Audio Tutorial" />

   <ProgressBar android:id="@+id/progress_bar"
                android:layout_width="200px" 
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                style="?android:attr/progressBarStyleHorizontal"/>

   <ImageButton android:id="@+id/button_play"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_marginTop="5px" 
                style="?android:attr/buttonStyleSmall"
                android:src="@drawable/button_pause" />
</LinearLayout>

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

Может кто-нибудь помочь мне узнать, что происходит?Спасибо

Редактировать: Благодаря ответам я обнаружил, что SurfaceView занимает все пространство, поэтому кнопки не видны.Любые идеи о том, как я могу избежать этого?Спасибо

Ответы [ 2 ]

4 голосов
/ 24 января 2011

Попробуйте изменить SurfaceView на:

   <SurfaceView android:id="@+id/surface"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_gravity="center">
</SurfaceView>

Это приведет к заполнению только доступной высоты, не используемой другими видами в линейном макете.

1 голос
/ 24 января 2011

Пожалуйста, обратитесь http://developer.android.com/guide/topics/graphics/index.html это может помочь вам.

...