gpt4 book ai didi

android - 检测到 Moto 360/圆形和未调用 onApplyWindowInsetsListener

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:55:01 25 4
gpt4 key购买 nike

检测 Moto 360 屏幕形状的常用方法似乎无法正常工作。

我知道有报道称 windowInset.isRound() 在 Moto 360 中返回 false。

目前我的代码如下

WatchViewStub viewStub = new WatchViewStub(this);
viewStub.setRoundLayout(com.pizzaentertainment.weatherwatchface.R.layout.bau);
viewStub.setRectLayout(com.pizzaentertainment.weatherwatchface.R.layout.bau_rect);
viewStub.setOnApplyWindowInsetsListener( new View.OnApplyWindowInsetsListener() {
@Override
public WindowInsets onApplyWindowInsets(View view, WindowInsets windowInsets) {
Log.d("ISWHAT?", "ASD" +windowInsets.isRound());
return windowInsets;
}
});
addContentView(viewStub, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
viewStub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
@Override
public void onLayoutInflated(WatchViewStub watchViewStub) {
Log.d("INFLATED", "INFLATED");
}
});

我的主要问题是 onApplyWindowInsets 从未在我的 LG G watch 和 Samsung Galaxy Gear Live 上被调用。我对一个 360 用户进行了测试,根据测试,他的设备上也没有调用该方法。

  1. 为什么 OnApplyWindowInsetListener 没有被调用?
  2. 为什么获得回调工作的人报告 windowInset.isRound() 在 Moto 360 上返回 false?
  3. 我们应该如何识别 Moto 360(以及 future 的圆形产品)?从 Build.MODEL?

最佳答案

我也发现 setOnApplyWindowInsetsListener 不会在真实设备上调用。它在 LG G Watch 和 Gear Live 上进行了检查。看起来 Moto 360 也是如此。我做了以下解决方法:

    WatchViewStub stub = (WatchViewStub) findViewById(R.id.stub);
stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
@Override
public void onLayoutInflated(WatchViewStub stub) {
Log.d(TAG, "onLayoutInflated()");
m_pager = (GridViewPager) findViewById(R.id.pager_square);
m_roundScreen = false;
if (m_pager == null) {
m_pager = (GridViewPager) findViewById(R.id.pager_round);
m_roundScreen = true;
}
// ... do other pager initializations
}
});

在您的圆形和方形布局中为其中一个组件设置不同的 ID,并检查加载了哪个组件,因为我没有找到任何其他方法。在示例中,我为 GridViewPager pager_square 设置了方形布局,pager_round 设置为圆形布局。不是很漂亮,但作为解决方法效果很好。

关于android - 检测到 Moto 360/圆形和未调用 onApplyWindowInsetsListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25821544/

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