我正在关注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>
以下是卡片的截图:
有人可以解释为什么该属性没有按预期工作吗?
答案 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属性可确保不会裁掉卡片内容的底部。