Activity
binding.isLogin = UserManager.isLogin()通过binding将isLogin的值设置到xml中
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.store_activity_about)
binding.isLogin = UserManager.isLogin()
}
XML
isLogin来接收登录状态
<data>
<variable
name="isLogin"
type="Boolean" />
<import type="android.view.View" />
</data>
android:visibility="@{isLogin?View.VISIBLE:View.INVISIBLE}"
通过判断登录状态来确定是否显示View
<TextView
android:id="@+id/bt_logout"
android:layout_width="263dp"
android:layout_height="48dp"
android:layout_marginBottom="77dp"
android:background="@drawable/store_button_shape_orange_light"
android:gravity="center"
android:text="退出登录"
android:textColor="#FFC01F"
android:textSize="14sp"
android:visibility="@{isLogin?View.VISIBLE:View.INVISIBLE}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/view_bg"
app:layout_constraintStart_toStartOf="@+id/view_bg" />
也可以直接将ViewModel传入到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>
<variable
name="viewModel"
type="com.store.ui.home.loginGuide.CouponGuideBottomViewModel" />
<import type="android.view.View" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_content"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#f2edf5ff"
android:visibility="@{viewModel.hasCoupon?View.VISIBLE:View.GONE}"
tools:context=".ui.home.loginGuide.LoginGuideBottomFragment"
tools:visibility="visible">
<TextView
android:id="@+id/tv_button"
android:layout_width="72dp"
android:layout_height="36dp"
android:layout_marginTop="6dp"
android:layout_marginEnd="15dp"
android:layout_marginBottom="6dp"
android:background="@drawable/store_shape_corners_dp14"
android:gravity="center"
android:text="@{viewModel.buttonText}"
android:textColor="@color/white"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText">
</TextView>
<ImageView
android:id="@+id/iv_close"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_margin="10dp"
android:src="@drawable/store_ic_close_blue"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:text="@{viewModel.title}"
android:textColor="#FF1C88FF"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/iv_close"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>