[英]View binding with include layout not working
我想使用視圖綁定將視圖綁定到包含布局中。 我已經給出了包含 id 'topBar' 的布局,但仍然無法訪問其中的視圖。 我嘗試使用 Android studio auto-fix 創建一個局部變量來查看它的類型。 它顯示類型“android.widget.a”我正在使用 Android Studio4.0。 這是 Android Studio 中的錯誤嗎?
我的活動
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 工作室的錯誤還是什么?
我什么都不做,它只是自動工作。 我確實做了清理,重建,重新啟動 Android 工作室......當時的東西但沒有工作。 也許在另一個 class 中鏈接另一個布局會觸發一些東西,只是在引擎蓋下修復它,因為我擱置了這個問題並繼續前進。
您應該只使用 ActivityWalletBinding viewBinding 來訪問包含標簽內的視圖,而不使用 ViewTitleBinding topBarBinding。 前任:
viewBinding.topBar.titleView.setText("Wallet")
在我的情況下,我包含來自另一個模塊的布局,並且無法通過綁定訪問包含的布局中的內部視圖,問題是我沒有在包含我想要包含的 xml 文件的模塊中啟用 viewBinding所以添加
buildFeatures {
viewBinding true
}
到該模塊的gradle.build
為我修復了它!
xml 級別包含帶有標簽的 xml 根
<?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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.