Привязка просмотра с включенным макетом не работает - PullRequest
1 голос
/ 14 июля 2020

Я хочу использовать привязку представления для привязки представления во включаемом макете. Я дал включенный макет с идентификатором topBar, но все еще не смог получить доступ к представлениям внутри него. И я пытаюсь использовать автоматическое исправление Android studio, чтобы создать локальную переменную, чтобы увидеть ее тип. Он показывает тип «android .widget. A». Я использую Android Studio4.0. Это ошибка в Android Studio?

My Activity

    private ActivityWalletBinding viewBinding;
    private ViewTitleBinding topBarBinding;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        viewBinding = ActivityWalletBinding.inflate(getLayoutInflater());
        setContentView(viewBinding.getRoot());
        viewBinding.topBar;
        android.widget . a = viewBinding.topBar; //Create local var using auto fix in android 
studio 
}

activity_wallet. xml

<?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="match_parent"
    android:orientation="vertical"
    >

    <include
        android:id="@+id/topBar"
        layout="@layout/view_title"/>

view_title. xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="65dp"
    xmlns:tools="http://schemas.android.com/tools"
    android:background="@color/white"
    android:paddingTop="19dp"
    android:id="@+id/fl_tab">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
        <ImageView
            android:id="@+id/btn_back"
            android:layout_width="39dp"
            android:layout_height="39dp"
            android:layout_centerVertical="true"
            android:onClick="backClick"
            android:padding="11dp"
            android:src="@mipmap/icon_back"
            android:tint="@color/gray1"
            />
        <TextView
            android:id="@+id/titleView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:gravity="center"
            android:textColor="@color/textColor"
            android:textSize="18sp"
            android:textStyle="bold"
            />
        <TextView
            android:id="@+id/tv_right_title"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:gravity="center"
            android:layout_alignParentRight="true"
            android:layout_marginRight="11dp"
            android:textColor="@color/enable_right_title"
            android:textSize="15sp"
            tools:text="假文字"
            />
    </RelativeLayout>
</FrameLayout>

Это ошибка для android студии или чего-то такого?

Ответы [ 3 ]

0 голосов
/ 14 июля 2020

Вы должны использовать только ActivityWalletBinding viewBinding для доступа к представлениям внутри тега include без ViewTitleBinding topBarBinding. Пример:

viewBinding.topBar.titleView.setText("Wallet")
0 голосов
/ 27 июля 2020

Я ничего не делаю, он просто работает автоматически. Я, конечно, очистил, перестроил, перезапустил студию Android ... что-то в то время, но не работало. Возможно, ссылка на другой макет в другом классе вызовет что-то, просто исправьте это под капотом, потому что я отложил эту проблему и продолжаю.

0 голосов
/ 14 июля 2020

xml уровень, включите свой xml root с тегом

   <?xml version="1.0" encoding="utf-8"?>
<layout 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">

    <data>

    </data>

    <?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="match_parent"
        android:orientation="vertical"
        >

    <include
        android:id="@+id/topBar"
        layout="@layout/view_title"/>
</layout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...