在圆形磨损装置的角落对齐元素

时间:2014-07-13 15:54:06

标签: android android-layout wear-os

我正在尝试将一个Object对齐到我的round_layout的角落,用于圆形的android服装设备。 正如你在这里看到的那样:

enter image description here

数字时钟将超出范围。

我在google IO 2014上看过android的文档,有些人表示,有一行代码,以便正确对齐对象。 我希望数字时钟位于左上角,但不在屏幕之外。

有人有建议吗?

这是XML文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MyActivity"
tools:deviceIds="wear_round">

<DigitalClock
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@color/text"
    android:textSize="20sp"/>
</RelativeLayout>

修改

我的xml布局文件现在看起来像是圆形活动:

<?xml version="1.0" encoding="utf-8"?>
<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">

   <TextView android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="1234567890"
       app:layout_box="top"/>

</android.support.wearable.view.BoxInsetLayout>

正如您所看到的,我尝试使用BoxInsetLayout,但仍然是输出:

enter image description here

虽然我用过

app:layout_box="top"

TextView不在屏幕范围内。我有什么监督?

1 个答案:

答案 0 :(得分:12)

根据Google IO 2014上显示的内容,您应该使用BoxInsetLayout
Check out this video&lt; - 约6:04

您可以在BoxInsetLayout示例代码中查看DelayedConfirmation的使用情况。以下是main_activity.xml文件的内容:

<?xml version="1.0" encoding="utf-8"?>
<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">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="@color/grey"
        app:layout_box="top">

        [...]

    </LinearLayout>
</android.support.wearable.view.BoxInsetLayout>

您可以将app:layout_box设置为以下值:left|top|right|bottomall。您可以在案例中使用all,然后所有内容都会保留在每个方框的框内。当app在方形手表上运行时,将忽略此布局的效果。


编辑:

我刚刚测试了您发布的“无法正常工作”的代码:

<?xml version="1.0" encoding="utf-8"?>
<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">

   <TextView android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="1234567890"
       app:layout_box="all"/>

</android.support.wearable.view.BoxInsetLayout>

活动:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

我已告诉您使用all中的layout_box值,但即使使用top,也可以按原样运行:

app:layout_box="top" :(仅从顶部偏移)

enter image description here

app:layout_box="all" :(偏离任何一方)

enter image description here