0
我正在做一個自定義控件的searchview
當按下白色layout
那就是searchview
背後應該叫onActionViewExpanded()
。然後它應該使另一個layout
出現,點擊時,請致電onActionViewCollapsed()
。問題在於白色佈局在被點擊時沒有響應。佈局不響應點擊事件
這裏是XML
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/whiteLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:clickable="true"
android:visibility="visible">
<android.support.v7.widget.SearchView
android:id="@+id/customSearchView"
style="@style/SearchView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:duplicateParentState="true"
android:tag="6C45CC26-CB9E-4497-B6E6-6CF725E0C47F"
android:visibility="visible"/>
</RelativeLayout>
<FrameLayout
android:id="@+id/backgroundLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#B3000000"
android:visibility="gone"/>
</RelativeLayout>
下面是Java代碼:
public class CustomSearchView extends FrameLayout{
CustomSearchViewBinding mBinding;
public CustomSearchView(Context context, AttributeSet attrs) {
super(context, attrs);
mBinding = DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.custom_search_view, this, true);
mBinding.whiteLayout.setOnClickListener(SearchViewOnClickListener);
mBinding.backgroundLayout.setOnClickListener(LayoutListener);
}
View.OnClickListener SearchViewOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
mBinding.customSearchView.onActionViewExpanded();
mBinding.backgroundLayout.setVisibility(View.VISIBLE);
}
};
View.OnClickListener LayoutListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
mBinding.customSearchView.onActionViewCollapsed();
mBinding.backgroundLayout.setVisibility(View.GONE);
}
};
任何幫助表示讚賞。
在您的佈局中,您尚未使用自定義的「CustomSearchView」類。 – sJy
對不起,我將編輯提交給我的帖子。 –