与 Butterknife 绑定以在 android 中动态添加视图
Bind with Butterknife to dynamically added view in android
如何绑定布局中存在的视图,这些视图是使用 ButterKnife 动态添加到父视图的。
我有一个 LinearLayout 说 容器。我有一个自定义布局,其中包含两个按钮,将此布局称为 childview
在 activity 中,我将 childview 成功添加到父 LinearLayout container.
这就是我膨胀自定义视图并添加到 LinearLayout 的方法
bubbleView = inflater.inflate(R.layout.child, null);
systemChatLayoutContainer.addView(bubbleView);
现在我想绑定 child 布局中的按钮视图
并在 child 布局中出现按钮时添加执行一些操作。
这是 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>
您可以使用 ViewHolder
将视图与存在于子布局中的 ButterKnife 绑定,因此添加内部 class BubbleViewHolder
class BubbleViewHolder {
BubbleViewHolder(View view) {
ButterKnife.bind(this, view);
}
@OnClick(R.id.button_id)
void onMyButtonClicked(Button myButton) {
// Do your stuff here
}
}
并在充气后构建BubbleViewHolder
View bubbleView = inflater.inflate(R.layout.child, null);
new BubbleViewHolder(bubbleView);
systemChatLayoutContainer.addView(bubbleView);
如何绑定布局中存在的视图,这些视图是使用 ButterKnife 动态添加到父视图的。
我有一个 LinearLayout 说 容器。我有一个自定义布局,其中包含两个按钮,将此布局称为 childview 在 activity 中,我将 childview 成功添加到父 LinearLayout container.
这就是我膨胀自定义视图并添加到 LinearLayout 的方法
bubbleView = inflater.inflate(R.layout.child, null);
systemChatLayoutContainer.addView(bubbleView);
现在我想绑定 child 布局中的按钮视图 并在 child 布局中出现按钮时添加执行一些操作。
这是 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>
您可以使用 ViewHolder
将视图与存在于子布局中的 ButterKnife 绑定,因此添加内部 class BubbleViewHolder
class BubbleViewHolder {
BubbleViewHolder(View view) {
ButterKnife.bind(this, view);
}
@OnClick(R.id.button_id)
void onMyButtonClicked(Button myButton) {
// Do your stuff here
}
}
并在充气后构建BubbleViewHolder
View bubbleView = inflater.inflate(R.layout.child, null);
new BubbleViewHolder(bubbleView);
systemChatLayoutContainer.addView(bubbleView);