【问题标题】:Click LinearLayout to execute action点击 LinearLayout 执行动作
【发布时间】:2015-09-21 17:52:18
【问题描述】:

我有一个用于几个活动的布局。我在布局中有一个LinearLayout,如下所示:

<LinearLayout
    android:id="@+id/like_button"
    android:clickable="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="10dp"
    android:gravity="center_vertical"
    android:layout_gravity="center_vertical">

    <ImageView
        android:id="@+id/like_button_iv"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:layout_marginEnd="10dp"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_like"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:layout_gravity="center_vertical"
        android:text="100"
        />

</LinearLayout>

我需要这样做,如果用户单击此LinearLayout,它会执行一个操作,然后将ImageView src 更改为不同的图标。

另外,在这种情况下使用LinearLayout 是否理想?

我该怎么做?

【问题讨论】:

  • 你根本不需要那个 LinearLayout。 ImageView 也是如此。只需在 TextView 中使用 compound drawable 并使 TextView 可点击。这将有助于扁平化您的布局以获得更好的性能。只需将平均属性从 LinearLayout 转移到 TextView。
  • 谢谢,这回答了一个问题。关于其他的任何想法?
  • 使用setCompoundDrawablesWithintrinsicBounds() 以编程方式更改drawable。注意 - 它可以是任何有效的 Drawable,不一定是 png 文件。
  • 添加到LinearLayout中的Xml android:clickable="true"
  • 第二个问题是如何让按钮执行一个动作?如何实现点击事件?

标签: android android-layout android-fragments android-activity android-xml


【解决方案1】:

您可以使用您的 ImageView 使其成为可点击的并使其完成这项工作。 在您的活动类中声明一个 ImageView。

ImageView myimage;

在您的oncreate 方法中添加

myimage=(ImageView) findViewById(R.id.like_button_iv);    
myimage.setOnclickListener(this);

在方法onClick添加:

myimage.setImageDrawable(getResources().getDrawable(R.drawable.differntsrc));

使用您的逻辑选择图像源differntsrc

【讨论】:

    猜你喜欢
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多