[OFFEN] Activity als Dialog - RecyclerView funktioniert nicht mehr

  • 10 Antworten
  • Letztes Antwortdatum
deka

deka

Dauer-User
351
Ich möchte meine Activity als Dialog anzeigen lassen und habe dazu in den styles.xml in meinem Theme folgenden parent gesetzt:
parent="Theme.AppCompat.Light.Dialog

Das funktioniert auch soweit. Die Activity wird damit als Dialog angezeigt. Was jedoch nicht mehr funktioniert ist mein RecylcerView in der Activity. Ich kann die Elemente nicht mehr anwählen oder durch die Liste scrollen. Ändert sich durch die Styleänderung auch etwas an der Logik der Activity? Ich bin davon ausgegangen, dass ich die Activity ganz normal weiterverwenden kann.

Hat jemand eine Idee wo das Problem liegen könnte?
 
Moin Deniz .

ich vermute mal, deine Dialog ist nicht ganz weg und liegt noch overlay .
Haste nen dismiss drin ?
 
Hey Stefan,
ich habe außer dem Hinzufügen des Styles an meiner Activity nichts geändert. Diese erbt von AppCompatActivity. Muss ich hier noch bestimmte Methoden implementieren?
 
Ich bin ein wenig verwundert über
Die Activity wird damit als Dialog angezeigt

Wie haste das denn hinbekommen ?
ich bastel mir immer eine eigene Klasse extended Dialog mit eignen Layout
 
Das einzeige was ich gemacht habe ist in den styles.xml den parent in Dialog umgeändert:

<style name="AppTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>

Und in der Manifest verwende ich dieses Theme.
 
Also da bin ich mir meiner Weisheit am Ende , ich hatte noch nicht so einen Fall - echt nicht :)
 
Im Grunde geht es mir darum, eine kleine App zu bauen die an sich nur eine Art Popup-Dialog ist und diese kann dann als SDK von anderen Apps genutzt werden. Das heißt ich habe momentan drei Activities und möchte diese als Dialog anzeigen. Da dachte ich, dass es mit den styles funktionieren müsste. Aber ganz so einfach ist es dann wohl doch nicht.
 
Ich würde eine LEERE Activity bauen (lass das setContentView weg) und in der dann deinen Dialog im onCreate aufrufen
 
Ok und beim Verwenden vom RecyclerView im Dialog, muss ich da etwas beachten oder kann ich die bestehende Logik übernehmen?
 
Eigentlich schon

BSP (Copy & Paste)

Code:
 //////////////////////////////////////////////////////////////////////////////////
    public class CreateNewPlayList extends Dialog
    {

        @Override
        protected void onCreate(Bundle savedInstanceState)


bla bla


Aufruf :
Code:
 CreateNewPlayList cdd=new CreateNewPlayList();
        cdd.setCancelable(false);
        cdd.setCanceledOnTouchOutside(false);
        cdd.show();
 
  • Danke
Reaktionen: deka
So, muss das Thema nochmal aufgreifen. Das mit dem Style hat doch nicht so funktioniert wie ich wollte.
Ich habe aktuell eine Activity und insgesamt 3 Fragmente, die in die Activity reingeladen werden.

Die Activity ist eine Art pseudo Dialog, da ich die Größe vom Fenster wie folgt anpasse:
int width = (int) (getResources().getDisplayMetrics().widthPixels * 0.90);
int height = (int) (getResources().getDisplayMetrics().heightPixels * 0.90);

this.getWindow().setLayout(width, height);

Das ist aber wahrscheinlich keine so gute Lösung und jetzt ist meine Frage wie es am sinnvollsten ist. Reicht es aus wenn ich das mit Activity extends Dialog löse und weiterhin hier die (normalen) Fragmente reinlade? Oder sollten die Fragmente DialogFragmente sein?
 
Zurück
Oben Unten