2016-07-29 4 views
0

私はsearchviewの後ろにある白いlayoutが押されたときにonActionViewExpanded()を呼び出す必要がありますsearchviewためカスタムコントロールを作ってるんだをクリックして応答していません。その後、別の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

申し訳ありませんが、投稿を投稿しました。 –

関連する問題