无法将卡与Android Wear的底部对齐

时间:2016-01-26 01:56:51

标签: android wear-os

我正在关注Android文档here中的教程,但他们并没有按照我的期望去做。

我创建了一个CardFrame来在手表上显示一张卡片并使用属性app:layout_box="bottom"让它出现在手表的底部,但正如您所看到的截图不是这样。这是我的XML:

<android.support.wearable.view.BoxInsetLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_height="match_parent"
    android:layout_width="match_parent">

    <android.support.wearable.view.CardScrollView
        android:id="@+id/card_scroll_view"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        app:layout_box="bottom">

        <android.support.wearable.view.CardFrame
            android:layout_height="wrap_content"
            android:layout_width="match_parent">

            <LinearLayout
                android:layout_height="wrap_content"
                android:layout_width="match_parent"
                android:orientation="vertical"
                android:paddingLeft="5dp">
                <TextView
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent"
                    android:text="Custom Title"
                    android:textColor="@color/black"
                    android:textSize="20sp"/>
                <TextView
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent"
                    android:text="Custom Description"
                    android:textColor="@color/black"
                    android:textSize="14sp"/>
            </LinearLayout>
        </android.support.wearable.view.CardFrame>
    </android.support.wearable.view.CardScrollView>
</android.support.wearable.view.BoxInsetLayout>

以下是卡片的截图:

enter image description here

有人可以解释为什么该属性没有按预期工作吗?

1 个答案:

答案 0 :(得分:4)

将属性 android:layout_gravity =&#34; bottom&#34; 添加到 CardFrame 标记,如下所示:

<android.support.wearable.view.CardFrame
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:layout_gravity="bottom">

这解决了我的问题,卡片显示在底部。

说明: 我认为属性的含义&#34; layout_box&#34;从cardframe教程中不是很清楚。从BoxInsetLayout docs,看来layout_box =&#34;底部&#34;表示&#34;确保CardScrollView的底部包含(或装箱)在centre box&#34;内。这可以防止卡的底部被裁掉。它并不意味着&#34;在底部对齐&#34;。 layout_gravity属性将卡片放在底部。 layout_box属性可确保不会裁掉卡片内容的底部。