2016-07-29 108 views
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); 
    } 
}; 

任何幫助表示讚賞。

+0

在您的佈局中,您尚未使用自定義的「CustomSearchView」類。 – sJy

+0

對不起,我將編輯提交給我的帖子。 –

回答

0

因此,您向我們展示了您的自定義視圖:CustomSearchView,但我沒有看到它在佈局中實現。

在XML中,您正在使用常規的FrameLayout和SearchView。

+1

對不起,我將編輯提交給我的帖子。 –