我对如何访问headerLayout有疑问。所以我想调用Layout drawerheaderlayout.axml中包含的变量,因此可以将它插入到一个activity(变量)中。
这是我的代码以及我想知道的信息。
Main.axml
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:menu="@menu/navmenu"
app:headerLayout="@layout/headerdrawerlayout" /><!--this header-->
</android.support.v4.widget.DrawerLayout>
drawerheaderlayout.axml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="178dp"
android:orientation="vertical"
android:weightSum="1"
android:background="@drawable/imgBg">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="54dp"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
<TextView
android:id="@+id/callUsername"<!--I want to call this variable inside Activity-->
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:textColor="#ffffff"
android:textSize="20dp"
android:textStyle="bold"
android:typeface="sans" />
</RelativeLayout>
答案 0 :(得分:0)
这是我做的: 首先,我为抽屉布局创建了一个AppCompatActivity,在主要活动上,它引用了AppCompatActivity。
DrawerLayout活动:
public class DrawerLayout : AppCompatActivity
{
TextView UserName;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.drawerheaderlayout);
UserName = FindViewById<TextView>(Resource.Id.callUsername) // here you call your username
}
}
主要活动:
public class MainView : DrawerLayout
{
base.OnCreate(savedInstanceState);
FrameLayout contentFrameLayout = FindViewById<FrameLayout>(Resource.Id.content_frame);
LayoutInflater.Inflate(Resource.Layout.Main, contentFrameLayout); // here I Inflate the main.axml
}