Я использовал прямые дочерние элементы в своем макете XML, все было идеально, когда привязка макетов осуществлялась с помощью активности. Я мог бы использовать binding.bannerPager.setOffscreenPageLimit(3);
, но когда я заменил прямых детей тегом <include/>
, я больше не могу использовать binding.bannerPager
, я искал этот bannerPager
в ViewDataBinding своей деятельности. Но мой плохой, я не мог найти это.
Вот мой класс активности.
public class ActivityRestaurantDetail extends BaseActivity {
private ActivityRestaurantDetailBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.activity_restaurant_detail);
binding.setActivity(this);
binding.bannerPager.setOffscreenPageLimit(3);
в activity_restaurant_detail.xml у меня есть макет, который мне нужен во многих макетах.
<include layout="@layout/layout_banner_image"/>
Здесь находится layout_banner_image.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="@dimen/_150sdp">
<android.support.v4.view.ViewPager
android:id="@+id/banner_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/grey_rect"/>
<com.amelio.utils.CircleView
android:id="@+id/circle_view"
android:layout_width="match_parent"
android:layout_height="@dimen/_5sdp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/_8sdp"
app:accent_color="@android:color/white"
app:base_color="@color/light_grey"/>
</RelativeLayout>
Мой вопрос:
В качестве решения я использовал findViewById, а затем заменил binding.bannerPager
на bannerPager.someMethod (), но я хочу получить доступ к компонентам, как и раньше.
Что мне делать, чтобы я мог получить доступ к таким компонентам, как binding.bannerPager
, и мне не нужно использовать findViewById
?