包含布局的视图绑定不起作用

时间:2020-07-14 04:40:58

标签: java android android-studio android-viewbinding

我想使用视图绑定将视图绑定到包含布局中。我给了包含id为“ topBar”的布局,但仍然无法访问其中的视图。我尝试使用Android Studio自动修复功能创建一个本地变量以查看其类型。它显示类型为“ 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 Studio的错误还是什么?

3 个答案:

答案 0 :(得分:1)

我什么都不做,它只会自动运行。我确实做了清理,重建,重新启动Android Studio的工作……那时候有些东西无法正常工作。也许在另一个类中链接另一个布局会触发某些问题,只是将其修复即可,因为我搁置了这个问题并继续进行下去。

答案 1 :(得分:0)

您应仅使用ActivityWalletBinding viewBinding来访问include标记内的视图,而无需使用ViewTitleBinding topBarBinding。 例如:

viewBinding.topBar.titleView.setText("Wallet")

答案 2 :(得分:-1)

xml级别使用标记封闭xml根

 <buttons:Button                        
          Command="{Binding Source={x:Reference Name=MyItems}, Path=ParentContext.MyButtonCommand}"
          CommandParameter="{Binding .}"/>