选择器不适用于片段内的按钮

时间:2016-09-23 14:16:06

标签: android android-fragments selector imagebutton

当触摸按钮(按下)时,我希望我的图像按钮显示不同的图像。为此,我通常使用选择器,但这次它只加载" btnnormal"图像但不是" btnselected"按下按钮时的图像。按钮是一个片段,我认为这会以某种方式导致这个问题。这段代码通常在正常活动下完美无缺。

这是我的res / drawable / buttonone.xml中的xml文件,带有选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="@android:integer/config_mediumAnimTime">
    <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/btnselected" />
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/btnselected" />
    <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/btnselected" />
    <item android:drawable="@drawable/btnnormal" />
</selector>

这是res / layout / fragment_layout.xml中的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background1"
    android:orientation="vertical"
    android:scrollbars="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="74dp"
        android:background="@drawable/bg"
        android:orientation="horizontal"
        android:paddingTop="10dp">

        <ImageButton
            android:id="@+id/btnOne"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/buttonone" /> //here is the reference to the selector 
    </LinearLayout>
</LinearLayout>

这是java / StartFragment.java中的java文件:

public class StartFragment extends Fragment implements OnClickListener {

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

    View fraglayoutv = inflater.inflate(R.layout.fragment_layout, null);

    btnOne = (ImageButton) fraglayoutv.findViewById(R.id.btnOne);
    btnOne.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //here is what happens when the button is clicked
        }
    });
  }
}

有没有人知道为什么&#34; btnselected&#34;按下按钮时图像是否显示?

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

尝试在ImageButton中设置

android:clickable="true"