2015-02-18 6 views
5

Ich wollte eine meiner Aktivitäten so gestalten, dass sie wie ein Dialog aussieht und ein Theme.AppCompat.Dialog-Theme dafür verwendet, aber es hat die Aktionsleiste schlecht aussehen lassen (siehe unten).Die Aktionsleiste sieht abgeschnitten aus, wenn Theme.AppCompat.Dialog verwendet wurde

Jetzt Hintergrund wird auf die Länge des Titel Zeichenfolge geschnitten und ich cant't jedes Thema Immobilien finden, es zu beheben. (

Was getan werden kann, um es zu vermeiden?

Verwandte Teil styles.xml:

<style name="DeviceListTheme" parent="Theme.AppCompat.Dialog"> 
    <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
</style> 

ich beginne die Aktivität mit dem folgenden Code:

+0

den Code in style.xml einfügen und den Code in Tätigkeit relevant zu zeigen die Aktionsleiste – Psypher

+0

Ist 'Select device' der Titel? oder ein normales TextView? –

+0

@JuanjoVega - "Select device" ist der Titel in der manifest.xml. Ich habe nicht versucht, ein benutzerdefiniertes Aktionsleisten-Layout zu erstellen. –

Antwort

4

Zuerst, als ich auf dieses Problem stieß, versuchte ich mit supportRequestWindowFeature(Window.FEATURE_NO_TITLE);, aber das hat nicht für mich funktioniert und hatte keine Wirkung.

Die alternative Methode zum Entfernen der Leiste oben in der Dialogaktivität besteht darin, einen benutzerdefinierten Stil zu erstellen und ihn auf diese Aktivität anzuwenden.

In styles.xml, erstellen Sie einen neuen Stil in etwa so:

<style name="MyCustomDialog" parent="Base.Theme.AppCompat.Light.Dialog"> 
    <item name="android:windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
</style> 

nun in AndroidManifest.xml, in android:theme="@style/MyCustomDialog" zu Ihrer Aktivität hinzufügen.

Natürlich kann MyCustomDialog in alles, was Sie wollen, umbenannt werden.

0

Verwenden DialogWhenLarge statt Standarddialogstil:

<style name="MyDialogTheme" parent="@style/Theme.AppCompat.Light.DialogWhenLarge"> 
... 
</style> 
0

löste ich das gleiche Problem auf diese Weise:

Aktivität:

public class MyActivity extends android.support.v4.app.FragmentActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.my_layout); 
     setTitle("View task"); 
    } 
} 

Thema:

<style name="Theme.MyDialog" parent="@style/Theme.AppCompat.Light.Dialog"> 
    <item name="android:windowNoTitle">false</item> 
</style> 

Mani Fest:

<activity android:name=".MyActivity" android:theme="@style/Theme.MyDialog"/> 

Ergebnis:

+0

Ich bekomme nichts auf den Bildschirm! Muss ich eine feste Größe einstellen? –

+0

Nein, Sie sollten keine feste Größe festlegen. – wizard

+0

Wie mache ich dann die volle Breite? Oder ein Prozentsatz ... Oder fügen Sie Polsterung oder etwas hinzu? –

0

enter image description here

Seine Arbeits

<style name="AppThemeDialog" parent="Theme.AppCompat.Light.Dialog"> 
     <item name="android:windowNoTitle">true</item> 
     <item name="android:spinnerStyle">@style/holoSpinner</item> 
</style> 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_search); 
     setTitle("Batches"); 
    }