【发布时间】:2010-12-12 12:45:25
【问题描述】:
在 Android 上,我想创建一个包含其他视图的按钮。例如,像这样:
+---------------------------+
| Hello world! +-------+ |
| | image | |
| Some more info +-------+ |
+---------------------------+
但我希望它比这个具体示例更灵活。理想情况下,按钮可以简单地包含一个 ViewGroup,这样我就可以在一个单独的 XML 文件中实现它的布局。但是,由于 Button 扩展了 View,而不是 ViewGroup,这似乎是不可能的。
有没有办法使用标准的 Android 组件来实现这一点,还是我必须求助于编写自定义按钮类?
根据要求,一些可以解决问题的示例 XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:focusable="true"
android:clickable="true"
android:background="@android:drawable/btn_default">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/primary_text_light"/>
<TextView
android:id="@+id/additional_line_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/primary_text_light"/>
<TextView
android:id="@+id/additional_line_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/primary_text_light"/>
</LinearLayout>
我必须明确设置 TextView 的颜色,否则它们几乎无法阅读(默认情况下它们是白色的)。我从 SDK 中挖出了标识符:.../platforms/android-7/data/res/values/public.xml。奇怪的是,primary_text_light 给出黑色文本,而 primary_text_dark 产生白色......
【问题讨论】:
-
在 SO 上有 25.3k 代表,而您在问这个问题?我会给你一个提示......编写你自己的课程......还是我错过了重点?
-
真的吗?名声是否意味着一个人永远不会被困在某个地方并寻求一些提示?
-
我还要说,创建您自己的自定义 View(Group) 类。
-
@Siddharth Lele 和 @Thomas:对不起,如果这听起来很苛刻和无益,我很抱歉,但是是的,在我看来,SO 是程序员的问答网站,那么已经建立了显着声誉的人会回答问题肯定可以在 Android 开发者页面上执行一个简单的搜索,这会带来这样的事情......developer.android.com/guide/topics/ui/custom-components.html 和这个developer.android.com/guide/topics/ui/…
-
@MisterSquonk:我当然搜索过。我确实想到了创建自定义类的想法。如果您不相信,请再次阅读我帖子的最后一句话。我只是想知道这样一个看似简单的事情是否不能以更简单的方式完成(WPF会让我这样做!)。事实证明,有,但你发布的链接都没有指向我。所以我仍然很高兴我问了:)
标签: android button view viewgroup