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.

War es hilfreich?

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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top