Когда мне нужно раздувать макет моего пользовательского представления? - PullRequest
1 голос
/ 28 декабря 2011

Я сделал пользовательский вид, который используется в нескольких фрагментах виджета.

Вид всегда сохраняется как поле фрагмента. Я раздуваю макет в конструкторе и все отлично работает, перелистывая страницы. Поскольку всегда создается следующий фрагмент, представление отображается без каких-либо проблем. Но если я возвращаюсь, разрушенное представление фрагмента воссоздается и выдает ошибку, потому что я все еще использую то же пользовательское представление, которое не раздуто, потому что конструктор не вызывается.

Итак, когда мне нужно раздувать макет пользовательского представления? Я не думаю, что код что-то прояснит, но я могу доставить в случае необходимости.

Ответы [ 2 ]

1 голос
/ 28 декабря 2011

У меня есть класс DynamicRowView, который содержит представление. Вы можете создать класс и вызвать этот класс в своем основном файле:

public class DynamicRowView
{
    public View getView(int layout_id,Activity context)
    {
        View view = null;
        view = context.getLayoutInflater().inflate(layout_id, null);
        return view;
    }
}

и напишите это в своем основном классе, где вы хотите View:

dynamic_row_view = new DynamicRowView();

View view = dynamic_row_view.getView(R.layout.row_menu_list, MenuListingPage.this);
1 голос
/ 28 декабря 2011

В этой функции:

@Override
public boolean onCreateOptionsMenu(Menu menu) 
{
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.game_menu, menu);
    return true;
}

Ссылка ЗДЕСЬ

...