2016-08-18 2 views
1

私はDrawerLayoutプログラムでXamarin.Androidを使用して、私は左ドラッグ可能形式でなければなりません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

'私を与えるERROR'何のエラー続けますか? –

答えて

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'を提供し、それはちょうど 'の代わりに' WrapContent'のMatchParent'する必要がありますおかげで再び – MujtabaFR

+0

スタートは、基本的には左と同じです。 – Thommy