Używam prostego GridLayout
, do którego dodam przyciski dynamicznie.SetGravity dla GridLayout nie działa
<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>
i używam tego kodu Java, aby wypełnić mój siatkę, która jest wszystko działa dobrze z tym, że opcja zestaw Gravity nic nie robi. Próbowałem - zmieniając szerokość layout_width na różne typy w pliku XML, dodając grawitację do GridLayout
itp., Jak wspomniano w innych rozwiązaniach na tej stronie. Inną rzeczą, na którą należy zwrócić uwagę, jest to, że robię to w zadaniu asynchronicznym wewnątrz fragmentu. Zasadniczo chcę osiągnąć to, co osiąga layout_gravity="fill_horizontal"
w XML.
tagButtons = new Button[trendingTagsCount];
for(int i=0;i<trendingTagsCount;i++)
{
tagButtons[i] = new Button(getActivity());
//tagButtons[i].setLayoutParams(new LayoutParams(Gravity.FILL_HORIZONTAL));
tagButtons[i].setText(getTagsList.get(i).tag);
tagButtons[i].setGravity(Gravity.FILL_HORIZONTAL);
tagButtonGrid.addView(tagButtons[i]);
}
Nadal nie znalazłem odpowiedzi, chociaż udało mi się osiągnąć kompromis za pomocą przycisku button.setMaxWidth() i tego samego dla wysokości. – RaWa
możesz zrobić coś takiego ... LayoutParams param; lp = (LayoutParams) tagButtons [i] .getLayoutParams(); lp.gravity = Gravity.FILL_HORIZONTAL; tagButtons [i] .setLayoutParams (lp); –