問題タブ [android-layoutparams]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android: TYPE_APPLICATION_OVERLAY を使用してウィンドウ タイプ 2038 の許可が拒否されました
他のアプリケーションの上にあるビューを作成しようとしています:
他の回答を調べたところ、「アプリケーションの描画」について次のことがわかりました。
- マニフェストに android.permission.SYSTEM_ALERT_WINDOW があります
- 私は Settings.canDrawOverlays(this) チェックを行っていますが、これは true に戻ります。
- ここにあるすべてを実行しましたが、ウィンドウの種類に対して許可が拒否されました
「-- ウィンドウ タイプ 2038 の許可が拒否されました」というエラーが引き続き表示されます。現在、私は TYPE_PHONE を使用していますが、これは非推奨であり、TYPE_APPLICATION_OVERLAY を使用するように指示されています。TYPE_PHONE の回答は真の解決策ではなく、Android O で廃止された「パッチワーク」ソリューションであるため、これについてフォローアップできますか。
私はAndroid 7.1.2で実行しています
android.view.WindowManager$BadTokenException: ウィンドウを追加できない.-wrap21(ActivityThread.java) で android.app.ActivityThread$H.handleMessage(ActivityThread.java:1583) で android.os.Handler.dispatchMessage(Handler.java:102) で android.os.Looper.loop(Looper) .java:154) で android.app.ActivityThread.main(ActivityThread.java:6121) で java.lang.reflect.Method.invoke(ネイティブ メソッド) で com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit) .java:889) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) で 原因: android.view.WindowManager$BadTokenException: ウィンドウ android.view を追加できません。ViewRootImpl$W@1f47e89 -- android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:342) の android.view.ViewRootImpl.setView(ViewRootImpl.java:703) で、android.view.WindowManagerImpl のウィンドウ タイプ 2038 に対する権限が拒否されました。 addView(WindowManagerImpl.java:93) で HeadService.TwoViewManager.(TwoViewManager.java:99) で HeadService.UIHeadService.onStartCommand(UIHeadService.java:65) で android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3327) で Android .app.ActivityThread.-wrap21(ActivityThread.java) で android.app.ActivityThread$H.handleMessage(ActivityThread.java:1583) で android.os.Handler.dispatchMessage(Handler.java:102) で android.os.Looper com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) で
android - ピクセル数でlayout_marginBottomを増やす方法は?
ゲームでは、カスタム ビューと FAB を FrameLayout に表示します。
ただし、FAB が低すぎて、下部の水色のバーが見えにくくなっています。
layout_marginBottom
FAB が上に移動するように、水色のバー (上のスクリーンショットの赤い矢印で示されている) の高さだけ を増やす必要があります。
バーの高さをピクセル単位で知っています (カスタム ビューのコンテンツはマトリックスによってスケーリングされます)。このアクションの適切な場所 (カスタム ビューのメソッド) を知っていると思いますonSizeChanged
が、私の困難は理解することですFAB のlayout_marginBottom
値。
アクセスして変更する方法を教えてください。私が試してみました:
ちなみに、必要に応じてここで翻訳するための2つの方法がdp
ありpx
ます。