gpt4 book ai didi

android - 某些 Moto 360 不加载圆形布局

转载 作者:太空狗 更新时间:2023-10-29 13:22:45 27 4
gpt4 key购买 nike

我编写了一个在圆形和方形 watch 上运行的应用程序,具有两个布局和一个 watchViewStub。由于 moto 360 在欧洲销售,我有很多报告说 Moto 360 没有加载圆形布局。使用模拟器,我无法重现此行为,即使我按此处说明更改语言环境:https://developer.android.com/guide/topics/resources/localization.html#testing所以我想这是我的代码......

我是这样实现的:

<android.support.wearable.view.WatchViewStub
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/watch_view_stub"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:rectLayout="@layout/rect_activity_camera"
app:roundLayout="@layout/round_activity_camera">

然后在 fragment 中我给 WatchViewStub 充气

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
final WatchViewStub stub = (WatchViewStub) getView().findViewById(R.id.watch_view_stub);
stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
@Override
public void onLayoutInflated(WatchViewStub stub) {
...
}
}

该 fragment 用于 FragmentViewPager/FragmentGridPagerAdapter。在我获得 Moto 360 之前,有什么关于如何调试它的想法吗?

编辑

Wear Sdk 中的 WatchViewStub 示例有两种不同的行为,具体取决于语言设置,所以我填写了这个问题:https://code.google.com/p/android/issues/detail?id=77642

重要

此问题在不同的帖子中进行了讨论。为了避免重复更新的信息,只会更新谷歌代码上的问题,一旦问题得到解决,我将完成这篇文章: https://code.google.com/p/android/issues/detail?id=77642

最佳答案

由于没有正确使用 WatchViewStub 而导致的 inflating layout 有很多问题。我没有看到上面的足够代码来确切地知道,但是一个常见的问题是当你为 watch insets 注册一个监听器时:

    final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
stub.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() {
@Override
public WindowInsets onApplyWindowInsets(View view, WindowInsets windowInsets) {
// Need to also call the original insets since we have overridden the original
// https://developer.android.com/reference/android/view/View.OnApplyWindowInsetsListener.html
stub.onApplyWindowInsets(windowInsets);

return windowInsets;
}
});

我见过人们忘记返回 windowInsets 或忘记调用 stub.onApplyWindowInsets() 的情况。这具有提供方形布局而不是圆形布局的效果。

其他问题是由于忘记将与 square.xml 相同的 XML 元素放入 round.xml 引起的。

您在 adb logcat 中收到的错误消息是什么?

关于android - 某些 Moto 360 不加载圆形布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26369375/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com