Xamarin Android c # Viewstub работает только один раз, а затем получает нулевой указатель - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь использовать viewstub для установки моего вида, и он работает нормально в первый раз, однако, если я вызываю метод снова, я получаю исключение нулевого указателя. Любые идеи, почему это происходит?

здесьмой код, в первый раз, когда я называю это, и он работает нормально.

            ViewStub stub = FindViewById<ViewStub>(Resource.Id.stub);
            stub.LayoutResource = Resource.Layout.overview;
            stub.Inflate();

, затем, когда я пытаюсь сделать то же самое снова с другим макетом, я получаю исключение нулевого указателя

            ViewStub stub = FindViewById<ViewStub>(Resource.Id.stub);
            stub.LayoutResource = Resource.Layout.product_view;
            stub.Inflate();

1 Ответ

0 голосов
/ 28 мая 2018

В соответствии с официальной документацией :

Когда ViewStub становится видимым или когда вызывается inflate (), ресурс макета раздувается.Затем ViewStub заменяет себя в своем родительском элементе на завышенные View или Views.

Ваш ViewStub заменяется на Resource.Layout.overview после вызова stub.Inflate().Вы можете использовать FindViewById(), чтобы получить представление в своем overview, но больше не можете получить ViewStub.

...