Android - Encha layout com botões
-
19-09-2019 - |
Pergunta
Apenas uma pergunta rápida sobre como você iria sobre como implementar esta. Eu quero que haja botões na parte inferior da tela, mas se o tamanho da tela é maior, seria adicionado mais botões.
Por exemplo, em um pequeno tamanho da tela, pode haver 4-5 botões na parte inferior, mas se você executou-lo em um tablet ou algo semelhante, haveria talvez 20 botões.
Todas as sugestões? Ele pode não rolagem tanto, ele só tem que preencher dinamicamente o layout com botões.
Graças.
Solução
Para colocar botões na parte inferior de um layout, fazer algo assim para o seu 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>
Para alterar o número de botões são apresentados com base no tamanho da tela, você deve implementar layouts diferentes para tamanhos de tela Múltiplas ..
http://developer.android.com/guide/practices/screens_support.html
Outras dicas
Parece que você deseja criar sua própria classe layout personalizado. Que ou apenas preencher uma LinearLayout (por exemplo) até que você correr para fora do espaço da tela.
Se você sabe o tamanho de seus botões em pixels você poderia usar DisplayMetrics para obter as dimensões da tela, em seguida, calcular quantos botões vai caber no seu espaço alocado.
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
metrics.heightPixels GIVS altura absoluta em pixels metrics.ydpi dá pixels exata físicas por polegada da tela
e metrics.density dá densidade lógico para fins de escala
veja aqui: http://developer.android.com/reference/ android / util / DisplayMetrics.html
seguida, basta fazer algo como
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);