Android .. 2 перекрывающихся вида разной высоты внутри структуры кадра, чтобы они были одинаковой высоты - PullRequest
0 голосов
/ 30 июля 2011

У меня есть индикатор выполнения и текстовое представление внутри структуры кадра. Текст перекрывает индикатор выполнения.

Текстовое представление в два раза больше индикатора выполнения (из-за длины текста), и я бы хотел, чтобы высота индикатора выполнения автоматически соответствовала этому.

Я попытался сделать это, установив индикатор выполнения в match_parent, а для родителя - wrap_content, но индикатор выполнения не увеличивается по высоте.

XML выглядит так:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
> 

<ProgressBar  
    android:layout_width="match_parent"  
    style="?android:attr/progressBarStyleHorizontal"  
    android:layout_height="fill_parent"
    android:layout_gravity="center_horizontal|center_vertical"
/> 

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="30sp"
    android:text="Big long text here................................"    
    android:layout_gravity="center_horizontal|center_vertical"
/>

</FrameLayout>

Ответы [ 2 ]

4 голосов
/ 30 июля 2011

Используйте RelativeLayout и выровняйте границы с помощью layout_align.

 <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:focusable="false">
        <TextView
            android:id="@+id/textview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="30sp"
            android:text="Big long text here................................"
            android:layout_gravity="center_horizontal|center_vertical" />
        <ProgressBar
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_height="fill_parent"
            android:layout_gravity="center_horizontal|center_vertical"
            android:layout_alignTop="@id/textview"
            android:layout_alignLeft="@id/textview"
            android:layout_alignBottom="@id/textview" />
    </RelativeLayout>
0 голосов
/ 30 июля 2011

Используйте LinearLayout с android: layout_weight = "1" для ProgressBar и TextView.Примерно так

<LinearLayout android:layout_height="match_parent"
 android:layout_width="match_parent"
 android:orientation="vertical> 
 <ProgressBar  
android:layout_width="match_parent"  
style="?android:attr/progressBarStyleHorizontal"  
android:layout_height="0dp"
android:layout_gravity="center_horizontal|center_vertical"
android:layout_weight="1"
/> 

<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:textSize="30sp"
android:text="Big long text here................................"    
android:layout_gravity="center_horizontal|center_vertical"
android:layout_weight="1"
/>
</LinearLayout>

Почему вы выбрали FrameLayout?

...