3

Android Wear アプリを開発していますが、画面の一番下のコンテンツが黒いバーのためにトリミングされています。

このビデオは、バーの高さを次のように取得する必要があることを示しています。

@Override
public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) {
   int barHeight = insets.getSystemWindowInsetBottom();
}

しかし、実際には barHeight は常に 0 です。

今、私はそれをハッキングしています

if (Build.MODEL.equals("Moto 360")) {

}

しかし、それは非常に将来性のあるものではありません。ヒントはありますか?

4

1 に答える 1

1

ウィンドウのインセットを使用して、Wear アプリのアクティビティとウォッチフェイス エンジンで「あご」の高さを決定するので、機能します。Moto 360 でテストしました。これはアクティビティからの抜粋です。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
    stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
        @Override
        public void onLayoutInflated(WatchViewStub stub) {
            stub.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() {
                @Override
                public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) {
                    int chinHeight = insets.getSystemWindowInsetBottom();
                    // chinHeight = 30;
                    return insets;
                }
            });
        }
    });
}
于 2015-02-01T18:22:00.863 に答える