【发布时间】: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