2016-08-18 8 views
1

나는 DrawerLayout 프로그램 Xamarin.Android를 사용하지만 왼쪽 dragable 형태이어야한다 ListView을 추가하려는 문제에 직면 ..Xamarin.Android : DrawerLayout.LayoutParams

을 만들려고 해요에서 중력 매개 변수

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); 

당신은 내가 gravity 매개 변수

정의로 전달할 것을 몰랐다 .. 알 수 있듯이 : 여기

내 코드입니다 DrawerLayout 클래스에서 함수의 같다 :

public LayoutParams(int width, int height, int gravity); 

그래서 나는 gravity에 대한 int을 통과해야하지만, 어떻게? 그것은 나에게주는

myListView.LayoutParameters = new DrawerLayout.LayoutParams(width: 240, height: DrawerLayout.LayoutParams.MatchParent, gravity: Gravity.LEFT); 

오류 : 또한 시도

'Gravity' does not contain a definition for 'LEFT'

:

나는 다음과 같은 노력했습니다

myListView.LayoutParameters = new DrawerLayout.LayoutParams(width: 240, height: DrawerLayout.LayoutParams.MatchParent, gravity: GravityFlags.Left); 

을하지만, 나에게 오류 제공 :

cannot convert from 'Android.Views.GravityFlags' to 'int'

당신은 DrawerLayout 당신이 GravityCompat를 사용할 수있는 지원 패키지에서 클래스이기 때문에

new DrawerLayout.LayoutParams(240, DrawerLayout.LayoutParams.WrapContent, (int)(GravityFlags.Start | GravityFlags.Left)). 
+1

'계속 오류가 발생합니다.'어떤 오류가 있습니까? –

답변

4

사전에이 솔루션에 대한 아이디어가 희망 :

myListView.LayoutParameters = new DrawerLayout.LayoutParams(width: 240, 
         height: DrawerLayout.LayoutParams.WrapContent, 
         gravity: GravityCompat.Start); 
+0

감사합니다. 좋은 결과를 낳았습니다.하지만 | 기호 의미는 여기 ?? – MujtabaFR

+1

'|'는 비트 또는.입니다. 여러 플래그를 설정하는 방법입니다. –

+0

그냥 하나의 플래그가 필요합니다 .. 다시 감사합니다 – MujtabaFR

0

처럼 int로 플래그를 캐스팅해야합니다 .. 감사

+0

'GravityCompat'는'Start' 만 제공합니다 .. 없습니다 'right','left' 또는'center' .. Sven 대답은 조금 더 유용 할 것 같네요. 당신의 노력에 감사합니다. – MujtabaFR

+0

시작은 기본적으로 왼쪽과 같습니다. – Thommy