Xamarin.Android:DrawerLayout.LayoutParams中的Gravity参数

Muj*_*aFR 1 c# android xamarin.android drawerlayout

我正在尝试DrawerLayout使用Xamarin.Android创建程序,但是在尝试添加ListView应该可从左侧拖动的时遇到了问题。

这是我的代码:

DrawerLayout myDrawerLayout = new DrawerLayout(this);
myDrawerLayout.LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent);
SetContentView(myDrawerLayout);


FrameLayout myFrameLayout = new FrameLayout(this);
myFrameLayout.LayoutParameters = new DrawerLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent);
myFrameLayout.SetBackgroundColor(Android.Graphics.Color.Gray);
myDrawerLayout.AddView(myFrameLayout);


ListView myListView = new ListView(this);
myListView.SetBackgroundColor(Android.Graphics.Color.Green);
myListView.LayoutParameters = new DrawerLayout.LayoutParams( width: 240,
                                                  height: DrawerLayout.LayoutParams.MatchParent,
                                                  gravity: ????????
                                                           );
myDrawerLayout.AddView(myListView);
Run Code Online (Sandbox Code Playgroud)

如您所知..我不知道作为gravity参数传递什么

DrawerLayout类中函数的定义如下:

public LayoutParams(int width, int height, int gravity);
Run Code Online (Sandbox Code Playgroud)

所以,我必须通过intgravity,但如何?

我尝试了以下方法:

myListView.LayoutParameters = new DrawerLayout.LayoutParams( width: 240, height: DrawerLayout.LayoutParams.MatchParent, gravity: Gravity.LEFT);
Run Code Online (Sandbox Code Playgroud)

它给我错误:

“重力”不包含“左”的定义

还尝试了:

myListView.LayoutParameters = new DrawerLayout.LayoutParams( width: 240, height: DrawerLayout.LayoutParams.MatchParent, gravity: GravityFlags.Left);
Run Code Online (Sandbox Code Playgroud)

但给我一个错误:

无法从“ Android.Views.GravityFlags”转换为“ int”

希望您对解决方案有个了解..并在此先感谢

Sve*_*übe 5

您必须将标志转换为int像

new DrawerLayout.LayoutParams(240, DrawerLayout.LayoutParams.WrapContent, (int)(GravityFlags.Start | GravityFlags.Left)).
Run Code Online (Sandbox Code Playgroud)