2016-06-10 51 views
2

如何將使用ButterKnife動態添加到父視圖的佈局內部的視圖綁定。用Butterknife綁定以在android中動態添加視圖

我有一個LinearLayout說容器。我有一個包含兩個按鈕自定義佈局說這個佈局childview 在活動我加入childview成功於母公司的LinearLayout 容器

這是我的表現如何膨脹的自定義視圖,並添加到LinearLayout中

bubbleView = inflater.inflate(R.layout.child, null); 
systemChatLayoutContainer.addView(bubbleView); 

現在我想結合存在的孩子佈局 裏面的按鈕的意見,並添加執行某些操作時,按鍵目前裏面的佈局。

這是在Button單擊時動態添加到父容器的child.xml。

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

    <TextView 
     android:id="@+id/btnCreateAccount" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/btn_selector_green" 
     android:gravity="center" 
     android:padding="@dimen/_13sdp" 
     android:text="Create an account" 
     android:textAppearance="@style/TextAppearance.AppCompat.Small" 
     android:textColor="@color/white" /> 

    <TextView 
     android:id="@+id/btnJstCheckingRate" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/btn_selector_blue" 
     android:gravity="center" 
     android:padding="@dimen/_13sdp" 
     android:text="I'm just checking rates" 
     android:textAppearance="@style/TextAppearance.AppCompat.Small" 
     android:textColor="@color/white" /> 

    <TextView 
     android:id="@+id/btnIhaveAccount" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/transparent_btn_selector" 
     android:gravity="center" 
     android:padding="@dimen/_20sdp" 
     android:text="I've got an account" 
     android:textAppearance="@style/TextAppearance.AppCompat.Small" 
     android:textColor="@color/white" /> 
</LinearLayout> 

回答

5

您可以使用viewholder將視圖與存在於子佈局內的butterknife綁定。

... 
bubbleView = inflater.inflate(R.layout.child, null); 
BubbleViewHolder viewHolder = new BubbleViewHolder(bubbleView); 
viewHolder.button.setOnClickListener(new OnClickListener{ 
     @Override 
     public void onClick(View v) { 
      // handle event here 
     }}); 
systemChatLayoutContainer.addView(bubbleView); 
} 

private class BubbleViewHolder { 
     @Bind(R.id.button_id) Button button; 
     BubbleViewHolder(View view) { 
      ButterKnife.bind(this, view); 
     } 
} 
+0

是不是有辦法實現@OnClick的ButterKnife到perferom動作? –

+0

如果你願意,你可以在這個視圖中。如果這個解決方案有效,你可以請你提供答案。謝謝:) –

+0

謝謝老闆那段代碼工作 –

相關問題