Android的 - 填写布局的按钮
-
19-09-2019 - |
题
只是你将如何去实现这一个简单的问题。我希望这是在屏幕底部的按钮,但如果屏幕尺寸较大,将增加更多的按钮。
例如,在一个小屏幕尺寸,有可能是在底部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);
不隶属于 StackOverflow