Android:定位优先级

时间:2014-01-23 12:09:24

标签: android position android-linearlayout

我的应用程序中有这么简单的代码:

<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:baselineAligned="false"
    android:gravity="fill_horizontal"
    android:orientation="horizontal" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <ProgressBar
            android:id="@+id/elapsedTimeBar"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/elapsedTimeText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="@string/time_mockup"
            android:textAppearance="?android:attr/textAppearanceSmall" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <Button
            android:id="@+id/next"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:onClick="onNextClick"
            android:text="@string/next" />

    </LinearLayout>
</LinearLayout>

我想实现按钮位于ProgressBar右侧的情况,ProgressBar填充Button留下的整个spave。
我假设上面的代码将处理这个,但在我的情况下,ProgressBar是拉伸的,并使用Button从canvas整个LinearLayout推出。我可以做某种方式,按钮(或带按钮的布局)是一个参考点,“定位器”开始从它做出订单吗?

2 个答案:

答案 0 :(得分:0)

在进度条上将宽度更改为“wrap_content”?

在这里阅读更多内容: 的 http://ritald.blogspot.com/2013/05/lesson-6-android-wrapcontent-and.html

答案 1 :(得分:0)

我明白了:

<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:baselineAligned="false"
    android:gravity="fill_horizontal"
    android:orientation="horizontal" >

    <LinearLayout
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical" >

        <ProgressBar
            android:id="@+id/elapsedTimeBar"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/elapsedTimeText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="@string/time_mockup"
            android:textAppearance="?android:attr/textAppearanceSmall" />
    </LinearLayout>

    <LinearLayout
            android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <Button
            android:id="@+id/next"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:onClick="onNextClick"
            android:text="@string/next" />
    </LinearLayout>
</LinearLayout>

这意味着布局应该围绕按钮,并且带有栏的布局应该

android:layout_weight="1"

我不知道为什么这种机制不直观,但它有效。