【问题标题】:Butterknife framework, handling included layouts for multiple widget variablesButterknife 框架,处理包含多个小部件变量的布局
【发布时间】:2016-08-16 11:46:32
【问题描述】:

我刚刚被介绍了用于字段绑定的 Butterknife 框架。 我的问题是在我的一个片段中实现 Butterknife 时出现以下编译错误,当我使用 findViewById()

时它工作正常

错误:(52, 65) 错误: 尝试将@BindView 用于已绑定的 ID 'tvRFCExt' 上的 3454353。 (com.org.ui.fragments.SummaryFragment.tvRFCElect)

片段

@BindView(R.id.tv_rfc)TextView tvRFCExt;
@BindView(R.id.tv_rfc)TextView tvRFCElect;
@BindView(R.id.rt_bar)RatingBar ratingBarExt;
@BindView(R.id.rt_bar)RatingBar ratingBarElect;

onCreateView(){
    mView = inflater.inflate(R.layout.fragment_summary, container, false);
}

fragment_summary.xml 包含类似的布局。两者都有一个评分栏和一个 TextView。

<include
android:id="@+id/viewRatingExtTyres"
layout="@layout/rating_view"></include>
<!-- rating-->
<include
android:id="@+id/viewRatingElecInter"
layout="@layout/rating_view"></include>

包含的布局如下所示:

<?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="wrap_content"
    android:background="@color/colorWhite"
    android:orientation="horizontal"
    android:weightSum="4">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1.2"

        >

        <TextView
            android:id="@+id/tv_Title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_margin="2dp"
            android:gravity="center_vertical"
            android:paddingLeft="@dimen/margin_10"
            android:textColor="@color/gray_text"
            android:textSize="@dimen/text_apperance_small" />
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/tv_Title"
            android:layout_height="wrap_content">

        <RatingBar
            android:id="@+id/rt_bar"
            style="?android:attr/ratingBarStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:max="100"
            android:numStars="5"
            android:progressTint="@color/colorSubmitBtn"
            android:rating="0"
            android:saveEnabled="false"
            android:stepSize="0" />
</LinearLayout>

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="2.6">

        <TextView
            android:id="@+id/tv_rfc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="@dimen/margin_10"
            android:layout_marginTop="@dimen/margin_5"
            android:gravity="center_vertical"
            android:text="@string/txt_rfc"
            android:textColor="@color/gray_text"
            android:textSize="@dimen/text_apperance_medium" />

        <View
            android:id="@+id/line"
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/tv_rfc"
            android:layout_margin="5dp"
            android:background="@color/row_color_text"></View>


        <TextView
            android:id="@+id/tv_rating"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/line"
            android:layout_marginLeft="@dimen/margin_10"
            android:gravity="center_vertical"
            android:text="@string/txt_no_rting"
            android:textColor="@color/gray_text"
            android:textSize="@dimen/text_apperance_medium" />

    </RelativeLayout>


</LinearLayout>

现在使用findViewById() 方法可以正常工作。我需要做哪些更改才能确保 Butterknife 框架在这里工作。

【问题讨论】:

  • 试试@BindView(R.id.viewRatingExtTyres) LinearLayout linear;

标签: android android-layout butterknife


【解决方案1】:

尝试使用此代码:

onCreateView(){
mView = inflater.inflate(R.layout.fragment_summary, container, false);
ButterKnife.bind(this, mView);}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    • 2011-11-05
    相关资源
    最近更新 更多