Tools: текст для элементов RecyclerView

Я знаю, что когда вы устанавливаете

tools:text="Sample text" 

В TextView вы увидите образец текста в режиме предварительного просмотра в Android Studio, но не в реальном приложении. Я хотел бы сделать это для элементов в RecyclerView , но, похоже, я не могу это сделать. Вот что я сделал до сих пор:

В RecyclerView (named content_feed):

 tools:listitem="@layout/cell_feed" 

В ячейке (name cell_feed):

 tools:showIn="@layout/content_feed" 

Введите описание изображения здесь

Вот xml файлы:

cell_feed.xml

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="@dimen/height_feed_cell" android:layout_marginLeft="@dimen/margin_feed_cell" android:layout_marginRight="@dimen/margin_feed_cell" android:orientation="horizontal" tools:showIn="@layout/content_feed"> <LinearLayout android:id="@+id/timeLayouts" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:alpha="@dimen/alpha_feed_secondary_text" android:textSize="@dimen/size_feed_secondary_text" android:id="@+id/startTimeText" tools:text="8:00 AM"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:alpha="@dimen/alpha_feed_secondary_text" android:textSize="@dimen/size_feed_secondary_text" android:id="@+id/endTimeText" tools:text="10:00 AM"/> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/margin_feed_cell_text" android:layout_toRightOf="@+id/timeLayouts" android:layout_centerVertical="true" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/margin_bottom_feed_cell_title" android:textSize="@dimen/size_feed_cell_title" android:textStyle="bold" android:id="@+id/titleText" tools:text="Event title"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:alpha="@dimen/alpha_feed_secondary_text" android:textSize="@dimen/size_feed_secondary_text" android:id="@+id/captionText" tools:text="Event caption"/> </LinearLayout> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginLeft="@dimen/margin_feed_cell_text" tools:text=""/> </RelativeLayout> 

content_feed.xml

 <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/feedRecycler" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:listitem="@layout/cell_feed" tools:showIn="@layout/activity_feed"/> 

Функция, которую вы хотите, называется «Поддержка выборочных данных» и недавно была анонсирована в событии Google IO 2017. Это прямая ссылка на точную минуту, когда Tor Norbye представляет новую функцию.

Например, применяя следующее к элементу макета:

 tools:text="@tools:sample/lorem" 

Приведет к следующему результату в окне предварительного просмотра:

Введите описание изображения здесь

Применяя это:

 tools:text="@tools:sample/date_day_of_week" 

Приведет к этому результату в окне предварительного просмотра:

Введите описание изображения здесь

Вы также можете заполнить его своими данными. Имея, например, файл activity_log.json в проекте со следующим содержимым:

 { "activities" : [ { "icon": "@sample/activity_icons[ic_biking.png]", "description": "Biking", "location" : "Pleasant Hill, CA", "distance": "48 miles", "date": "Yesterday" }, // other items here ] } 

То вы можете применить эти данные к своему макету таким образом:

 tools:src="@sample/activity_log.json/activities/icon" tools:src="@sample/activity_log.json/activities/distance" 

Это приведет к следующему выводу в окне предварительного просмотра:

Введите описание изображения здесь