3

このように、ソフトウェア キーの背後でオーバーフローするアプリのアクティビティを 1 つだけ作成しようとしています。

アクティビティ オーバーフロー ソフトウェア キー バー

私がすでに行ったことは、テーマ定義に次のステートメントを入れることでした

<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>

そして、重複させたいlistViewで有効にしました

android:fitsSystemWindows="true"
android:clipToPadding="false"

何が起こったのかというと、私のアプリはステータス バーとボタン バーで重複していましたが、これは上の 2 行に配置したアクティビティだけでなく、すべてのアクティビティで発生しました。

また、アクティビティ マージンが台無しになりました。アプリケーション ドロワーの最初の行が非表示になり、メイン フラグメントの上部も非表示になりました。

アクティビティがトップ バーに重なっています。 私が望んでいた方法ではありません...

私はfitsSystemWindowsがこの種の問題を解決するためのものだと思ったので、テーマに追加しました

<item name="android:fitsSystemWindows">true</item>

しかし、何も変わりませんでした。

質問は明らかに単純です: アプリの上部を台無しにすることなく、(可能であれば) 他のすべてのアクティビティに同じ影響を与えずに、アクティビティの 1 つがその後ろに流れる半透明の下部バーを取得するにはどうすればよいでしょうか?

ヘルパーの皆様、これからもよろしくお願いします。

4

1 に答える 1

4

Eluvatar が述べたように、この効果を 1 つのアクティビティだけに適用する必要がある場合は、カスタム テーマを定義して、このアクティビティだけに割り当てるのが最善の方法です。それが私がしたことです。styles.xml で空のスタイルを定義し、values-v19/styles.xml でそれをオーバーライドしました。

<!--<item name="android:windowTranslucentStatus">true</item>-->
<item name="android:windowTranslucentNavigation">true</item>

次に、AndroidManifest.xml で、適切なスタイルをアクティビティに割り当てました。

android:theme="@style/Theme.Style.I.Created.For.This.Activity"

最初の行を無効にすると、ステータス バーにポップアウトすることなく、アクティビティをナビゲーション バーに重ねるだけで済みました。マージンも問題ないようです。

これがいつか他の誰かを助けることを願っています。

于 2014-03-06T16:53:10.217 に答える