2015-12-10 2 views
2

У меня возникла проблема с использованием библиотеки 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 для представлений, которые недоступны для всех макетов. Благодаря!

ответ

3

Добавить примечание @ Необязательно перед @ Признать вид, который может быть пустым.

Пример из ButterKnife Website:

@Nullable @Bind(R.id.might_not_be_there) TextView mightNotBeThere;