2014-02-18 3 views
1

Я использую Xamarin и у вас есть вопрос о получении View от Layout.Как получить представление из макета?

Если у меня есть Layout под названием custom_info_window, как я могу получить View?

Я попробовал этот код:

View v = Inflate(Resource.Layout.custom_info_window, null);

Это ошибка я получаю:

CS0103 Ошибка: Название 'Накачать' не существует в текущем контексте

Могу ли я, пожалуйста, помочь с этим?

Заранее спасибо

EDIT

Вот мой код Inflater:

LayoutInflater inflater =(LayoutInflater)Context.GetSystemService(Context.LayoutInflaterService); 

Это ошибка я получаю:

Error CS0120: An object reference is required for the non-static field, method, or property 'Android.Content.Context.GetSystemService(string)' 
+0

Необходимо использовать макетный инфлятор. Фактически раздувание является дополнительной функцией класса инфлятора макета. для получения дополнительной информации http://developer.android.com/reference/android/view/LayoutInflater.html – WISHY

ответ

1

Вы должны использовать этот ..

LayoutInflater inflater = (LayoutInflater)this.GetSystemService(Context.LayoutInflaterService); 
var layout = inflater.Inflate(Resource.Layout.custom_info_window, layoutImages) as LinearLayout; 
+0

Можете ли вы посмотреть мое редактирование, пожалуйста? – Garry

+0

У вас есть пользовательский вид? – Piyush

+0

Да, я сделал пользовательский вид. – Garry

1
LayoutInflater mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View v = mInflater.inflate((Resource.Layout.custom_info_window, null); 
+0

Можете ли вы посмотреть мое редактирование, пожалуйста? – Garry

1

должно быть также возможно получить LayoutInflater из контекста, что-то вроде:

LayoutInflater.from(getApplicationContext()).inflate(Resource.Layout.custom_info_window, null); 
+1

Это кажется самым простым способом. –

0

Вам нужно будет использовать объект контекста, чтобы получить оказание услуг. Если ничего не работает, используйте статическое свойство Application.Context:

var inflater = Application.Context.GetSystemService(Context.LayoutInflaterService) as LayoutInflater; 
var view = inflater.Inflate(... 
Смежные вопросы