5

Android Developer documentationActivityためDialogテーマを設定する方法について説明します。ActionBarCompatアクティビティをAndroidManifest.xmlのテーマを設定するダイアログとして表示するにはどうすればいいですか?

ヒント:カスタムダイアログをしたい場合は、あなたの代わりに代わりDialog APIを使用してのダイアログとしてActivityを表示することができます。単純にアクティビティを作成し、<activity>マニフェスト要素にTheme.Holo.Dialogにそのテーマを設定します。これだけです

<activity android:theme="@android:style/Theme.Holo.Dialog" >

を。アクティビティは、フルスクリーンの代わりにダイアログウィンドウに表示されるようになりました。

ActionBarCompatを使用するアプリケーションでこれを実行しようとしています。私はそのような...などさまざまなテーマをしようとしている

android:theme="@android:style/Theme.Dialog" 
android:theme="@style/Theme.AppCompat.Base.CompactMenu.Dialog" 
android:theme="@style/Theme.AppCompat.CompactMenu.Dialog" 
しかしそれらのどれも私は同じエラーメッセージで終わるので、動いていないようにみえ

java.lang.IllegalStateException:あなたがする必要がありますこのアクティビティでTheme.AppCompatテーマ(または子孫)を使用します。

答えて

8

ちょうど(それは本当にアクションバーで行うことが多くを持っていない原因、それ以降のバージョンで削除特殊なダイアログのテーマを持っている...)ActionBarSherlock 4.2.0からの変換先日、同じ問題をヒット。

でも、私はそれからインスピレーションを得たと、古いAPIのテーマを思い付いた:

res\values\styles.xml 
<style name="AppTheme.Dialog" parent="android:Theme.Light"> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowFrame">@null</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowBackground">@drawable/dialog_full_holo_light</item> 
    <item name="android:maxWidth">600dp</item> 
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
</style> 

後にAPIの実際のホロダイアログテーマを使用している間:

res\values-v11\styles.xml 
<style name="AppTheme.Dialog" parent="android:Theme.Holo.Light.Dialog"> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowCloseOnTouchOutside">true</item> 
</style> 

は、最後に私が使用していましたあなたが持っている例外を避けるためのplainアクティビティと、ActionBarViewがその幅/高さをチェックする別のアクティビティです。あなたが最後に完全なソースコードへのリンクを、私のブログの記事を読むことができ

:描画可能/ dialog_full_holo_light @ http://dandar3.blogspot.com/2013/12/actionbarcompat-dialog-activity.html

+0

は11よりもマイナーSDKには使用できません、我々はここで、(プロジェクトに追加する必要がありますそれを見つけるには?)、またはXMLからそれを削除しますか? – Giorgio

+1

@Giorgio、私のblogpostの最後にあるリソースを参照してください。Google CodeのフルソースプロジェクトとAndroidリソースへのリンクがあります。プロジェクトに追加する必要があります。リンクはhttps: //github.com/android/platform_frameworks_base/tree/master/core/res/res –

関連する問題