gpt4 book ai didi

Android - 如何为布局创建选择器(如 ImageButton 选择器)

转载 作者:搜寻专家 更新时间:2023-11-01 08:09:50 24 4
gpt4 key购买 nike

我有一个 ImageButton 和一个 LinearLayout 包裹那个按钮,像这样:

<LinearLayout
android:id="@+id/homeButtonLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/p_buttons_background"
android:orientation="vertical" >

<ImageButton
android:id="@+id/homeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10px"
android:background="@drawable/home_icon"
android:onClick="goBackToCameraScreen" />
</LinearLayout>

我在 LinearLayout 中的 ImageButton 周围放置了一个背景,如您在上面所见。

我希望能够在用户单击 ImageButton 时更改该背景(即 LinearLayout 的背景,而不是 ImageButton 的背景)。我可以通过编程方式做到这一点,但我想通过 XML 来做到这一点。我可以通过编写一个选择器轻松更改 ImageButton 的背景,如下所示:

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/button_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>

这正是我想要的完全,只是我想更改LinearLayout 背景,而不是ImageButton 背景。我怎样才能像上面那样创建一个 XML 选择器,但它实际上改变了 LinearLayout 的背景而不是 ImageButton 的背景?

提前致谢!! =)

最佳答案

将选择器设置为您的 LinearLayout 并向其添加 android:descendantFocusability="blocksDescendants"

在选择器中,将所有按钮背景替换为布局背景。

<LinearLayout
android:id="@+id/homeButtonLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/layout_bg_selector"
android:orientation="vertical"
android:descendantFocusability="blocksDescendants">

<ImageButton
android:id="@+id/homeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10px"
android:background="@drawable/home_icon"
android:onClick="goBackToCameraScreen" />
</LinearLayout>

选择器layout_bg_selector.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="#F0F0F0" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="#00F000" /> <!-- focused -->
<item android:drawable="#0000F0" /> <!-- default -->
</selector>

关于Android - 如何为布局创建选择器(如 ImageButton 选择器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10876119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com