2017-06-08 4 views
0

Ich habe Probleme, mein Layout flexibel zu machen.Android Studio: Flexibles Layout (nur mit XML?)

enter image description here

Wenn ich wechseln Landschaft meine Tasten in meinem Grid statisch halten. Und auf der rechten Seite meines Gitternetzes ist viel Platz.

enter image description here

Ich mag mein Gridlayout zu zentrieren und die Größe meiner Tasten veränderbar zu jedem Gerät Größe.

Mein XML-Code hier (zeigt nur zwei Tasten):

<?xml version="1.0" encoding="utf-8"?> 
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.fdai3744.taschenrechnerneu.MainActivity"> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_column="0" 
     android:layout_row="0" 
     style="@style/ButtonStyle" 
     android:text="@string/cal_btn_clear" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_column="1" 
     android:layout_row="0" 
     style="@style/ButtonStyle" 
     android:text="@string/cal_btn_clear_entry" /> 
</GridLayout> 

Ist es möglich, nur die Verwendung von XML oder soll ich auch Java verwenden?

Antwort

1

will mein Gridlayout zum Zentrum:

Verwendung:

android:layout_centerHorizontal="true" 
android:layout_centerVertical="true" 

in Ihrem Gridlayout.

machen die Größe meiner Tasten auf jedes Gerät Größe veränderbar: Um das zu tun, müssen Sie mehrere Werte Ordner in Ihrem Projekt erstellen, so dass Sie mehrere Bildschirme unterstützt. Zum Beispiel, ldpi, mdpi, hdpi, xhdpi, ..ect. Es gibt viele Ressourcen, wie man das hier in Stack macht.
Hoffe, dass hilft.