2013-01-21 28 views
5

Ich verwende eine einfache GridLayout, zu der ich Schaltflächen dynamisch hinzufüge.SetGravity für GridLayout funktioniert nicht

<GridLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tagGridLayout" 
android:background="@color/white" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:columnCount="3" 
> 
</GridLayout> 

Und ich bin mit diesem Java-Code mein Raster zu füllen, die alle arbeiten gut, außer dass die Menge Gravity Option nicht alles tun ist. Ich habe versucht, - layout_width zu verschiedenen Arten in der XML-Akte zu ändern und Schwerkraft zu der GridLayout etc. hinzuzufügen, wie in anderen Lösungen auf dieser Site erwähnt. Eine andere Sache zu beachten ist, dass ich dies in einer asynchronen Aufgabe in einem Fragment mache. Grundsätzlich möchte ich erreichen, was layout_gravity="fill_horizontal" im XML erreicht.

+0

Immer noch nicht die Antwort gefunden, obwohl ich einen Kompromiss mit button.setMaxWidth() und das gleiche für Höhe verwaltet. – RaWa

+0

können Sie so etwas tun ... LayoutParams param; lp = (LayoutParams) tagButtons [i] .getLayoutParams(); lp.gravity = Gravity.FILL_HORIZONTAL; tagButtons [i] .setLayoutParams (lp); –

Antwort

3

Wie Karan Mer sagte Sie die Layout Gravity mit GridLayout.LayoutParams.

Aber Vorsicht, in Grid Sie die columnSpec/rowspec der Kinder eingestellt haben (in Ihrem Fall die Taste) vor:

param.columnSpec = GridLayout.spec(0); 
param.rowSpec = GridLayout.spec(0); 

und nur dann

param.setGravity(Gravity.RIGHT); 

wenn columnSpec/rowspec ist undefiniert, wenn Sie SetGravity tun, Schwerkraft funktioniert nicht ...

Auch wenn Sie tun:

param.setGravity(Gravity.RIGHT); 
param.columnSpec = GridLayout.spec(0); 
param.rowSpec = GridLayout.spec(0); 

Gravity nicht funktioniert ...

Der richtige Weg ist:

param.columnSpec = GridLayout.spec(0); 
param.rowSpec = GridLayout.spec(0); 
param.setGravity(Gravity.RIGHT); 

Ich weiß nicht, ob ein Fehler oder eine bewusste Sache. (Ich benutze Android API 19)

Verwandte Themen