Xamarin Android中如何在Activity里访问app:headerLayout(axml)?
嘿,我来帮你搞定这个问题!在Xamarin.Android环境下,要调用drawerheaderlayout.axml里的控件并给Activity中的变量赋值,你可以按照下面的步骤操作:
第一步:获取NavigationView实例
在你的Activity的OnCreate方法中(记得在SetContentView之后),先找到布局里的NavigationView控件:NavigationView navView = FindViewById<NavigationView>(Resource.Id.nav_view);第二步:获取头部布局的View对象
NavigationView的头部布局是通过GetHeaderView方法获取的,这里传入索引0(因为通常我们只会设置一个头部布局):View headerLayout = navView.GetHeaderView(0);第三步:找到头部布局里的目标控件
假设你的drawerheaderlayout.axml里有一个id为tv_user_name的TextView,就可以通过headerLayout来找到它:TextView userNameTv = headerLayout.FindViewById<TextView>(Resource.Id.tv_user_name);第四步:赋值给Activity变量或者直接操作控件
现在你就可以把这个控件赋值给Activity的成员变量,或者直接设置它的内容了:// 赋值给Activity变量 private TextView _activityUserNameTv; _activityUserNameTv = userNameTv; // 直接设置控件内容 _activityUserNameTv.Text = "Zoro Raka";
注意事项
- 确保
drawerheaderlayout.axml里的目标控件已经设置了正确的android:id属性,否则会找不到控件返回null。 - 一定要在
SetContentView执行完之后再获取这些控件,不然会出现空指针异常哦!
内容的提问来源于stack exchange,提问作者Zoro Raka
相关产品推荐
相关产品推荐

