实现仪表板 UI 模式的最有效方法?
我想做仪表板模式。我目前对每个主页按钮都这样做:
<FrameLayout
android:layout_weight="1"
android:focusable="true"
android:onClick="onHomeButtonClicked"
android:background="@drawable/button_background">
<TextView
android:text="@string/button_text"
android:drawableTop="@drawable/button_icon"
android:layout_gravity="center"
android:gravity="center"
android:background="@android:color/transparent" />
</FrameLayout>
我将按钮包装在 FrameLayout 内的原因是我想:
- 最大化可点击区域
- 使图标和文本正确 居中。
我过去尝试这样做,但放弃了,因为我无法找到一种独立于屏幕大小的方式来使文本和图标居中:
<Button
android:layout_weight="1"
android:background="@drawable/button_background"
android:text="@string/button_text"
android:onClick="onHomeButtonClicked"
android:drawableTop="@drawable/button_icon"
android:drawablePadding="DONT_KNOW_WHAT_TO_PUT_IN_HERE" />
我的问题:是否可以做到所有这些:
- 不将按钮包裹在其他按钮中 布局(每个仅使用 1 个视图) 按钮)
- 最大化可点击区域
- 将图标和文本正确居中 一种与屏幕尺寸无关的方式
非常感谢。
I want to do the Dashboard pattern. I currently do this for each home button:
<FrameLayout
android:layout_weight="1"
android:focusable="true"
android:onClick="onHomeButtonClicked"
android:background="@drawable/button_background">
<TextView
android:text="@string/button_text"
android:drawableTop="@drawable/button_icon"
android:layout_gravity="center"
android:gravity="center"
android:background="@android:color/transparent" />
</FrameLayout>
The reason I wrap my button inside a FrameLayout is I want to:
- Maximize the clickable area
- Make the icon and text properly
centered.
I tried doing this in the past but gave up because I couldn't figure out a screensize-independent way of centering the text and icon:
<Button
android:layout_weight="1"
android:background="@drawable/button_background"
android:text="@string/button_text"
android:onClick="onHomeButtonClicked"
android:drawableTop="@drawable/button_icon"
android:drawablePadding="DONT_KNOW_WHAT_TO_PUT_IN_HERE" />
My question: Is it possible to do all these:
- Not wrap the Button inside other
layout (using only 1 view per
button) - Maximize the clickable area
- Properly center the icon and text in
a screensize-independent way
Many thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
以下是我用来以编程方式构建仪表板的一些代码:
如果您可以事先构建仪表板,则可以在 XML 文件中使用 android:drawableTop。
Here's some code that I use to build a dashboard programmatically:
You could instead use android:drawableTop in an XML file if you could build the dashboard beforehand.