我想为计算器设计一个简单的界面。计算器有2组按键,基本按键和附加按键。我想把额外的密钥放在HorizontalScrollView
上。这是xml文件:
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="B" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="D" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="E" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="F" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="G" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="H" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="J" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="K" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="L" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="M" />
</LinearLayout>
</HorizontalScrollView>
以下是它的样子:
然而,它工作得很好,我可以水平滚动并点击我想要的任何按钮。但我想更多地定制它。所以这是我的问题:
谢谢:)
答案 0 :(得分:2)
如果您将android:weightsum="5"
添加到线性布局,然后将android:layout_weight="1"
添加到我认为的每个按钮中,则会一次将5个按钮添加到屏幕上。然而,我不是很擅长使用weight属性,无论何时我使用它我都会进行一些猜测和检查,但是我的直觉告诉我,有可能以某种方式实现你的体重和体重。
然而,我不知道无论你使用什么屏幕,总是显示5个按钮是否有意义?对我来说,似乎你可能想要改变它至少一些,以便最小的屏幕可能只有4个按钮,最宽的屏幕可能会得到6,否则你将得到各种各样的按钮大小跨越所有不同的设备密度。
将其添加到HorizontalScrollView:
android:scrollbars="false"
应该为你处理滚动条。
至于关于一次滚动5的部分,我害怕实现这个你可能不得不用horizontalScrollView.smoothScrollBy()
方法手动处理它,你必须让它做计算来弄清楚到底有多远它需要去通过5个按钮。然后覆盖你的onTouch监听器,为你拨打smoothScrollBy()
电话。
smoothScrollBy() - 值得看看smoothScrollTo()。