Ich habe Karten, die 100dp Breite und 120dp Höhe sind und wenn die App startet, füge ich 3 Karten zu jeder Tabellenzeile hinzu (ich erstelle Anzahl der Tabellenzeilen basierend auf der Gesamtzahl der Karten, die ich möchte) hinzufügen). Am Telefon sieht das gut aus, aber auf Tablets gibt es viel Freiraum, weil die Anzahl der Kinder pro Zeile (in diesem Fall 3) nicht dynamisch ist, um den verfügbaren Bildschirmplatz zu füllen. Das Strecken der Spalten macht natürlich nur die Karten breiter (was imo sehr komisch aussieht). Gibt es einen Weg, wie ich einfach meine Karten zum Layout hinzufügen kann und die Anzahl der Spalten/Zeilen automatisch anhand der Bildschirmgröße bestimmen kann? zu ladenTabelle Zeile Child Count basierend auf der Bildschirmgröße
0
A
Antwort
1
können Sie die Bildschirmgröße mit Window-Manager
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
final DisplayMetrics displayMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;
oder
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
erhalten die erforderliche Anzahl von Karten zu finden.
besser stellen Sie die Breite einer Karte als proportional zur Bildschirmbreite zum Beispiel
int padding = 5;
float cardwidth = width*0.25 - padding; // card with 25% width of screen
int count = width /cardwidth ; //
Verwandte Themen
- 1. Textsize basierend auf der Bildschirmgröße
- 2. Limit basierend auf Count
- 3. Switching CSS-Klassen basierend auf der Bildschirmgröße
- 4. Layout ändern basierend auf der Bildschirmgröße
- 5. jQuery - Skripte basierend auf der Bildschirmgröße ausführen
- 6. Count Child-Objekte
- 7. Disable jQuery Basierend auf Bildschirmgröße
- 8. SELECT COUNT auf einer anderen Zeile Basierend in der gleichen Tabelle
- 9. UITableView: Festlegen der Höhe der Tabellenkopfansicht basierend auf der Bildschirmgröße
- 10. SQL: Count(), basierend auf Spaltenwert
- 11. Tabelle Echo für Zeile basierend auf Benutzereingabe
- 12. Get Zeile aus Tabelle basierend auf Parameter
- 13. Join Tabelle auf Count
- 14. Optimieren von .container mit .Container-Fluid basierend auf der Bildschirmgröße
- 15. Größe und Platzierung der Symbole basierend auf der Bildschirmgröße
- 16. jQuery + Bootstrap Grid - Zeige Bilder basierend auf der Bildschirmgröße
- 17. Update-Wert basierend auf Zeile innerhalb der gleichen Tabelle
- 18. Count Vereinigungen basierend auf Attributwert
- 19. UWP Änderung ScrollViewers basierend auf Bildschirmgröße
- 20. Warum zeigt COUNT() nur eine Zeile der Tabelle an?
- 21. Elemente in verschiedenen Containern basierend auf der Bildschirmgröße neu anordnen
- 22. Xcode Swift Moving UIElements basierend auf der Bildschirmgröße
- 23. Dynamische Include-Datei basierend auf der Bildschirmgröße funktioniert nicht
- 24. Kivy - Wie wird die Fenstergröße basierend auf der Bildschirmgröße festgelegt?
- 25. Code zum Positionieren instanziierter UI-Prefab basierend auf der Bildschirmgröße?
- 26. Ändern Sie die Tabelle Zeile Hintergrundfarbe basierend auf Tageszeit
- 27. nth-child basierend auf dem Elementindex
- 28. SQL dynamische Where-Klausel basierend auf der übergeordneten Tabelle Spalte
- 29. XSD Conditional Child Element basierend auf Attribut
- 30. Count Monatsbesucher basierend auf ihren Zweck
Höhe Umschalten in Ihrer Antwort auf die Breite funktioniert perfekt für die Tablette jedoch das Telefon eine höhere Auflösung hat, so gibt es mehr Karten auf der Telefonversion als kann auf dem Bildschirm passen. – XvKnightvX
besser Sie nicht die Breite als 120 statt, dass berechnen Sie als Prozentwert der Bildschirmbreite wie 25% der Bildschirmbreite Cardwidth = Breite * 0,25 – AnshaD
Mit ein paar schnelle Anpassung an Ihre ursprüngliche Antwort konnte ich anpassen Anzahl pro Zeile richtig - 'int cardPerRow = width/100/(int) displayMetrics.density; // 100 ist die Breite der Karte – XvKnightvX