Auf Sichtbarkeit reagieren.

  • Antworten:4
Marco
  • Forum-Beiträge: 28

13.06.2014, 11:02:04 via Website

Guten Tag,

ich bin noch ziemlich neu in der Android-entwicklung und stehe jetzt vor einem Problem.

Ich habe eine Activity welche ein Array verwaltet. Vom Server bekomme ich gelegentlich und nach bestimmten Ereignissen eine gewisse Anzahl von Einträgen für welche ich dann jeweils ein Fragment zu einem Container in meiner Activity adde. Das ganze befindet sich in einer ScrollView.

Jeh mehr Einträge ankommen desto größer wird meine ScrollView.

Jetzt stehe ich vor dem Problem das ich bei zu vielen Fragmenten irgendwann ein OutOfMemory bekomme. In den Fragmenten befinden sich Bilder und eventuell auch webviews.

Ich suche eine Möglichkeit nur den Bereich zu laden welcher durch die Ansicht gerade benötigt wird. Wie bekomme ich das hin? Gibt es einen Listener?

Ich hab im Fragment schon folgendes Probiert:

myFragmentView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
        @Override
        public void onSystemUiVisibilityChange(int visibility) {

            if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
                onPause();
            } else {
                onResume();
            }
        }
    });

Allerdings reagiert er darauf nicht.

Würde mich über eine Antwort sehr freuen.

Gruß

Antworten
Fabian Simon
  • Forum-Beiträge: 359

13.06.2014, 15:47:57 via Website

Springt er denn in die innere anaonyme klasse oder reagiert er überhaupt nicht auf den listener ?

Antworten
Marco
  • Forum-Beiträge: 28

13.06.2014, 17:28:54 via Website

Nein leider reagiert er darauf überhaupt nicht.

Ich hab versucht das ganze mit Log.e(..) auszugeben sobald das Fragment sichtbar ist aber keinerlei Reaktion.

Ich hab jetzt noch mal ewig nach einer Möglichkeit gesucht das ganze mit einem ListAdapter so zu programmieren allerdings finde ich keine Möglichkeit.

Fragmente in einer ListView zu setzen wäre eben auch eine gute Möglichkeit. Gibt es leider nicht. Warum eigentlich nicht? Finde ich sehr schade.

Gibt es denn keine Möglichkeit das zu bewerkstelligen?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

13.06.2014, 20:52:30 via Website

Du könntest ach einfach eine ListView mit den Einträgen erstellen und bei klick die Details laden.

LG Pascal //It's not a bug, it's a feature. :) ;)

Marco

Antworten
Marco
  • Forum-Beiträge: 28

24.08.2014, 13:15:10 via Website

Vielen Dank das hat mir weitergeholfen. Genau so werde ich das machen.

Antworten