У меня возникла проблема с использованием библиотеки Butterknife в моем текущем проекте. Я в настоящее время оптимизации проекта для телефонов и планшетов, а иногда есть небольшие различия между файлами макета для двух, напримерButterknife с различными макетами для телефонов и планшетов
макет/layout_example.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Text1/>
</LinearLayout>
макета большой/layout_example.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Text1/>
<TextView
android:id="@+id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Text2/>
</LinearLayout>
Класс будет выглядеть примерно так:
@Bind(R.id.text1) TextView text1;
@Bind(R.id.text2) TextView text2;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.layout_example, container, false)
ButterKnife.bind(this, rootView);
return rootView;
}
Проблема заключается в том, что это вызывает исключение для отсутствующего представления при просмотре на телефоне, поскольку просмотр «text2» не существует. Во всяком случае, вокруг? или мне нужно использовать findViewById для представлений, которые недоступны для всех макетов. Благодаря!