2

我有一个带有自定义行布局的列表视图。在这个自定义行中是一个进度条(“圆圈”),它指示加载状态。为了使布局看起来我喜欢它,我使用 layout_weight 作为进度条和包含其他一些 gui 内容的布局。

例子:

<ProgressBar
    android:id="@+id/progressBar1"
    style="?android:attr/progressBarStyleSmall"
    android:layout_width="0dip" 
    android:layout_height="match_parent" 
    android:layout_weight="1" />


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="0dip" 
    android:layout_height="match_parent" 
    android:layout_weight="7"
    android:layout_marginLeft="6dip" 
    android:orientation="vertical"
    >

我希望进度条具有相同的纵横比。

我的问题是进度条在不同的设备上看起来很奇怪。在我的 Galaxy Nexus 上,一切看起来都很好,并且进度条具有相同的纵横比。但是在 - 例如 - 我的模拟器上,进度条看起来像一个鸡蛋,这太可怕了。

有人可以指出我的错误吗?

编辑:

我不使用 wrap_content 因为布局将在视图的其余部分使用进度条的宽度,这真的很小(那么文本就没有地方了)。

编辑2:

两张图片显示问题:

“蛋” http://s14.directupload.net/file/d/2955/89xvdhrz_png.htm

wrap_content 的使用 http://s1.directupload.net/file/d/2955/sryrhkkk_png.htm

编辑3:

CFlex 的方法。整个 xml 文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal">

<ProgressBar
    android:id="@+id/progressBar1"
    style="?android:attr/progressBarStyleSmall"
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="center"
    android:layout_margin="4dp"/>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="0dip" 
    android:layout_height="match_parent" 
    android:layout_weight="7"
    android:layout_marginLeft="6dip" 
    android:orientation="vertical"
    >

    <TextView 
        android:id="@android:id/text1" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:textAppearance="?android:attr/textAppearanceLarge"/>

    <TextView 
        android:id="@android:id/text2" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:textAppearance="?android:attr/textAppearanceSmall"/>

</LinearLayout>

4

1 回答 1

4

你为什么不尝试这样的事情:

<ProgressBar
    android:id="@+id/progressBar1"
    style="?android:attr/progressBarStyleSmall"
    android:layout_width="wrap_content" 
    android:layout_height="match_parent"  
    android:layout_gravity="center"
    android:layout_margin="4dp"/>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="1"
    android:layout_marginLeft="6dip" 
    android:orientation="vertical"
    >

假设你在水平LinearLayout

告诉我这是否行不通。

编辑:使用 relativeLayout

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

    <ProgressBar
            android:id="@+id/progressBar1"
            style="?android:attr/progressBarStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_margin="4dp"/>

    <TextView
            android:id="@android:id/text1"
            android:layout_toRightOf="@+id/progressBar1"
            android:layout_alignParentTop="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"/>

    <TextView
            android:layout_toRightOf="@+id/progressBar1"
            android:layout_below="@android:id/text1"
            android:id="@android:id/text2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"/>

</RelativeLayout>
于 2012-07-18T14:30:11.757 回答