如何在Activity中访问app:headerLayout(axml)? Xamarin Android

时间:2018-04-30 11:14:26

标签: c# android visual-studio xamarin xamarin.android

我对如何访问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>

1 个答案:

答案 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
}