Есть много вопросов, подобных этому, но все они обращаются к добавлению вида в onCreateView()
перед возвратом корневого макета. Я хочу добавить представление в середине кода, в onClick()
Как добавить изображение в фрагмент?
Примечание это фрагмент, поэтому я не могу обновить пользовательский интерфейс без onCreateView()
:
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
//RelativeLayout Setup
RelativeLayout relativeLayout = new RelativeLayout(getActivity());
relativeLayout.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.MATCH_PARENT));
//ImageView Setup
ImageView imageView = new ImageView(getActivity());
//setting image resource
imageView.setImageResource(R.drawable.lit);
//setting image position
imageView.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.WRAP_CONTENT));
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.BELOW, R.id.button);
imageView.setLayoutParams(params);
//adding view to layout
relativeLayout.addView(imageView);
break;
}
}
Здесь я получаю экземпляр макета и изменяю его. Однако я не могу применить этот модифицированный фрагмент в интерфейсе приложения. Как обновить интерфейс приложения после модификации пользовательского интерфейса фрагмента?
Спасибо за ваше время.
Символ '' Fragment' в View' так же, как и любой другой 'View'. Независимо от того, что вы создаете динамически, просто нужно добавить в экранную панель ViewGroup. –
@MikeM. Спасибо Майку, но даже когда я сохраняю экземпляр контейнера ViewGroup и вызываю 'container.addView (relativeLayout)', он не работает. Что мне делать? Благодаря! –
Если вы имеете в виду 'container', переданный в' onCreateView() ', вы, вероятно, не хотите его использовать. Это 'ViewGroup' в' Activity', который держит ваш 'Fragment' весь' View'. Вы захотите использовать «ViewGroup» - например, «LinearLayout», «RelativeLayout» и т. Д. - это в макете, который вы раздуваете в 'onCreateView()'. –