サポートアクションバーをアクティビティの1つに追加したいのですが、以前はこのアクティビティでtheme.translucentを使用していましたが、サポートアクションバーを機能させるためにTheme.AppCompatを継承する必要があり、半透明を維持する必要がありますこのアクティビティのテーマですが、残念ながら、デフォルトで見ることができるTheme.AppCompat.translucentはありませんが、これを行う方法はありますか?
themes.xml のTheme.Translucent
と同じプロパティを持つ、使用するスタイルの新しいセットを作成できます。
Styles.xmlファイルに次を追加します。
<style name="Theme.AppCompat.Translucent">
<item name="Android:windowNoTitle">true</item>
<item name="Android:windowBackground">@Android:color/transparent</item>
<item name="Android:colorBackgroundCacheHint">@null</item>
<item name="Android:windowIsTranslucent">true</item>
<item name="Android:windowAnimationStyle">@Android:style/Animation</item>
</style>
ダイアログスタイルなどのテーマから他のものを継承したい場合、接頭辞Theme.AppCompat
を別のものに変更できます。たとえば、Theme.AppCompat.Light.Translucent
のような名前にはLightテーマのプロパティがあります。
新しいスタイルを使用するには、テーマプロパティを@style/Theme.AppCompat.Translucent
に設定します
<activity
Android:name=".TranslucentActivity"
Android:theme="@style/Theme.AppCompat.Translucent" >
</activity>
パラマ、
<style name="Theme.AppCompat.Translucent" parent="Theme.AppCompat.NoActionBar">
<item name="Android:windowNoTitle">true</item>
<item name="Android:windowBackground">@Android:color/transparent</item>
<item name="Android:colorBackgroundCacheHint">@null</item>
<item name="Android:windowIsTranslucent">true</item>
<item name="Android:windowAnimationStyle">@Android:style/Animation</item>
</style>
ツールバーを非表示にする場合は、これがスタイルヘッダーになります。他の効果のためにNoActionBarを持つ親テーマを使用できます。
お役に立てれば
透明なアクティビティに半透明を使用する場合。それは他の問題を引き起こします-Msgboxの色(現在は白で黒)、デフォルトのダイアログの色、スピナーはドロップダウンしますが、下線とドロップダウン矢印は表示しません。スピナーは黒色のテキストです。この問題を解決するには、以下のコードを使用します。
スタイルで
<style name="Theme.AppCompat.Transparent.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
<item name="Android:windowIsTranslucent">true</item>
<item name="Android:windowBackground">@Android:color/transparent</item>
<item name="Android:windowContentOverlay">@null</item>
<item name="Android:windowNoTitle">true</item>
<item name="Android:windowIsFloating">false</item>
<item name="Android:backgroundDimEnabled">false</item>
</style>
マニフェストファイル内
<activity
Android:name=".activity.YourActivityName"
Android:theme="@style/Theme.AppCompat.Transparent.NoActionBar" />
ありがとう
Cameronの答えは Nice hack ですが、フローティングアクションバーが生成され、ステータスバーに色が付けられました。そこで、ステータスバーを透明にするためのXML属性を追加し(sdk> = 19の場合)、アクションバーを非表示にするためのJavaコードを使用しました。
mainActivity.Java:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().hide();
...
}
...
}
styles.xml
<style name="AppTheme.TranslucentBG">
<item name="Android:windowNoTitle">true</item>
<item name="Android:windowBackground">@Android:color/transparent</item>
<item name="Android:colorBackgroundCacheHint">@null</item>
<item name="Android:windowIsTranslucent">true</item>
<item name="Android:windowAnimationStyle">@Android:style/Animation</item>
<item name="Android:windowTranslucentStatus">true</item>
<item name="Android:windowTranslucentNavigation">true</item>
</style>
manifest.xml
<application
Android:icon="@mipmap/ic_launcher"
...
Android:theme="@style/AppTheme"
...
>
<activity Android:name=".MainActivity"
Android:theme="@style/AppTheme.TranslucentBG"
...
>
...
</activity>
</application>