簡體   English   中英

Android-使用按鈕填充布局

[英]Android - Fill Layout with Buttons

只是一個關於如何實現此目標的簡短問題。 我希望屏幕底部有按鈕,但是如果屏幕較大,則會添加更多按鈕。

例如,在較小的屏幕上,底部可能會有4-5個按鈕,但是如果您在平板電腦或類似設備上運行它,則可能會有20個按鈕。

有什么建議么? 它也不能滾動,只需要用按鈕動態填充布局即可。

謝謝。

要將按鈕放在布局的底部,請對布局執行以下操作:

<?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>

要基於屏幕尺寸更改顯示的按鈕數量,應為“多個屏幕尺寸”實現單獨的布局。

http://developer.android.com/guide/practices/screens_support.html

聽起來您想創建自己的自定義布局類。 或僅填充LinearLayout(例如),直到屏幕空間用完為止。

如果您知道按鈕的大小(以像素為單位),則可以使用DisplayMetrics來獲取屏幕的尺寸,然后計算在分配的空間中可以容納多少個按鈕。

     DisplayMetrics metrics = new DisplayMetrics();
     getWindowManager().getDefaultDisplay().getMetrics(metrics);

metrics.heightPixels給出了像素的絕對高度metrics.ydpi給出了每英寸屏幕的確切物理像素

和metrics.density給出用於擴展目的的邏輯密度

參見此處: http : //developer.android.com/reference/android/util/DisplayMetrics.html

然后做類似的事情

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM