如何在ImageButton中添加多个TextView?

时间:2018-02-07 21:20:46

标签: java android ios

是否可以在一个带有彩色背景的ImageButton中添加多个TextView?

核心需求是在其上有一个带有操作文本的按钮,附近有一个子文本,用于解释操作或提供与操作相关的其他信息。该潜台词可能会不时变化。

考虑到这个要求,一个解决方案是在下面有一个普通按钮和一个子文本,而不是可点击的。但我发现它很乱。我喜欢的一个更好的方法是,例如在iOS上,有一个可点击的UIView,其中包含粗体文本的操作和浅文本的解释。查看包含4个按钮的图像: iOS illustration

如何在Android上使用Java实现相同的功能?我最接近的是将一个ImageButton放在TextView下面,听起来不对。

可以将TextViews嵌套在ImageButton中吗?如果没有,最好的选择是什么?

2 个答案:

答案 0 :(得分:1)

我希望这可能有用,它解释了如何在XML中的imageView内部和前面定位textView。

TextView inside of ImageButton/ImageView XML - Android Dev

显然,请确保每个视图都有一个唯一的ID /名称,您可以在此处指定on this link

抱歉,我无法自己解释,但自从用Java开发以来已经有一段时间了。

答案 1 :(得分:0)

我不知道为什么你想要这种行为,但你可以为你的视图创建一个容器,并为整个视图添加一个点击监听器。你也可以在任何地方使用它。

这样的例子就是。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="match_parent" 
android:background="@drawable/container_background"
android:layout_height="wrap_content">

<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:layout_weight="0.33"
  />

<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:layout_weight="0.33"
    />

<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:layout_weight="0.33"
  />

添加选择器背景

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@color/text_pressed" />
<item android:color="@color/normal" />
</selector>

和听众

 findViewById(R.id.container).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });