Android - Fill-Layout mit Schaltflächen
-
19-09-2019 - |
Frage
Nur eine kurze Frage, wie Sie über die Implementierung dieser gehen würde. Ich möchte dort Schaltflächen am unteren Rand des Bildschirms sein, aber wenn die Bildschirmgröße größer ist, würde mehr Tasten hinzugefügt.
Zum Beispiel bei einer kleinen Bildschirmgröße, könnte es 4-5 Tasten unten sein, aber wenn man es auf einem Tablet oder etwas ähnliches läuft, würde es vielleicht 20 Tasten sein.
Irgendwelche Vorschläge? Es kann nicht blättern entweder, es muss nur dynamisch das Layout mit den Tasten füllen.
Danke.
Lösung
An der Unterseite eines Layouts setzen Tasten, tut so etwas zu Ihrem Layout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_layout">
<LinearLayout
android:layout_height="wrap_content"
android:id="@+id/button_layout"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:gravity="center">
<Button
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 1"></Button>
<Button
android:id="@+id/Button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 2"></Button>
<Button
android:id="@+id/Button03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 3"></Button>
</LinearLayout>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/button_layout"
android:id="@+id/content">
<ListView
android:id="@+id/ListView01"
android:layout_height="fill_parent"
android:layout_width="fill_parent"></ListView>
</FrameLayout>
</RelativeLayout>
So ändern Sie, wie viele Tasten auf der Basis der Bildschirmgröße angezeigt werden, sollten Sie separate Layouts für unterschiedliche Bildschirmgrößen implementieren ..
http://developer.android.com/guide/practices/screens_support.html
Andere Tipps
Sounds wie Sie Ihre eigene benutzerdefinierte Layout-Klasse erstellen. Das oder einfach nur einen Linearlayout füllen (zum Beispiel), bis der Platz auf dem Bildschirm ausgeführt werden.
Wenn Sie die Größe der Buttons in Pixeln wissen Sie DisplayMetrics verwenden konnten die Abmessungen des Bildschirms erhalten dann berechnen, wie viele Tasten in Ihrem zugewiesenen Raum passen.
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
metrics.heightPixels GIVS absolute Höhe in Pixeln metrics.ydpi gibt genaue physikalische Pixel pro Zoll auf dem Bildschirm
und metrics.density gibt logische Dichte für die Skalierung Zwecke
siehe hier: http://developer.android.com/reference/ android / util / DisplayMetrics.html
dann tut nur so etwas wie
do{
Button button=new Button(context);
button.setText("yada yada")
button.allYoursettings....
.
.
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
LinearLayout layout=(LinearLayout) findViewById(R.id.yourlayout);
layout.addView(button,p);
} while(havespaceleft);