只是你将如何去实现这一个简单的问题。我希望这是在屏幕底部的按钮,但如果屏幕尺寸较大,将增加更多的按钮。

例如,在一个小屏幕尺寸,有可能是在底部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 GIVS绝对高度 metrics.ydpi每画面的英寸给出确切物理像素

和metrics.density给出逻辑密度用于缩放目的

在这里看到: http://developer.android.com/reference/机器人/ 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归因
不隶属于 StackOverflow
scroll top