私はXamarin.android用のアプリケーションをC#で作成していて、奇妙な問題に遭遇しました。 私はビューを膨張させるラッパークラスを使用します。その後、私は、AddViewを使って線図にビューを追加します。場合によってはGUIが更新されないことがあります。要素は追加されません。タスクボタンを呼び出すと(私はそれが正しい名前であるかわからない - ホームボタンのボタン)、次に私のアプリに戻って要素が表示されます。私はどこかでInvalidate()を使ってguiを更新することができると読んでいますが、それはうまくいかないようです。Xamarin.androidのGUIがAddViewの後に更新されない
どのような提案も高く評価されています。
これは、ラッパークラスの私のコンストラクタです:
public BoxDisplay(MainActivity activity, Product product, ViewGroup root)
{
View = activity.LayoutInflater.Inflate(Resource.Layout.BoxItem, root, false);
shelf = View.FindViewById<TextView>(Resource.Id.Shelf);
name = View.FindViewById<TextView>(Resource.Id.Name);
barcode = View.FindViewById<TextView>(Resource.Id.Barcode);
Stock = View.FindViewById<EditText>(Resource.Id.Stock);
typ = View.FindViewById<TextView>(Resource.Id.type);
this.activity = activity;
SetProduct(product);
Stock.ClearFocus();
Stock.Click += (o, arg) =>
{
Stock.SelectAll();
};
Stock.EditorAction += EditorAction;
}
と、ここで私は活動が作成されたずっと後のビューを追加します:アイデアのカップル以上の回答より
private void GenerateView(List<Product> products)
{
var boxlist = FindViewById<LinearLayout>(Resource.Id.BoxList);
foreach (var product in products)
{
var box = new BoxDisplay(this, product, boxlist);
boxDisplays.Add(box);
box.EnableEditText(false);
boxlist.AddView(box.View);
box.View.Click += (sender, e) => { box.UpdateBox(); };
}
}
コード、ラッパークラス、およびビューを 'LinearLayout'に追加する方法を投稿してください –