Реализация SwViewLayout ListView в фрагменте - PullRequest
0 голосов
/ 04 февраля 2019

Я создаю SwipeLayout ListView и пытаюсь поместить его в fragment, что создает мне проблему.Просто упомяну, что я реализовал макет вкладок (смахивание влево / вправо отключено), и в этом макете у меня есть 2 фрагмента (2 вкладки).

Я использую этот https://github.com/chthai64/SwipeRevealLayout для моегоSwipeLayout и в этом примере он реализован внутри действия, а не фрагмента, что является проблемой для меня.

Итак, у меня есть Activity.java и FragmentOne.java и ListAdapter.java.Фрагмент, очевидно, является потомком действия, и, так как я пытаюсь внедрить этот SwipeLayout во фрагмент, возникает проблема, когда я помещаю функции setupList() и createList() во фрагмент, а затем мне нужно вызвать setupList(), но гдея должен назвать это?Это сработает, если я переопределю onStart но это нормально?Может ли это вызвать проблемы?

В этом примере он вызывается в onCreate методе, которого нет у фрагментов, и я не могу вызвать его в onCreateView, потому что представление еще не создано, и мне нужноиметь list_view готов.list_view находится в fragment.xml.

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

private void setupList() {
    ListView listView = getView().findViewById(R.id.list_view);
    adapter = new ListAdapter(getContext(), createList(20));
    listView.setAdapter(adapter);
}

private List<String> createList(int n) {
    List<String> list = new ArrayList<>();

    for (int i = 0; i < n; i++) {
        list.add("View " + i);
    }

    return list;
}

Что мне нужно сделать, чтобы понять это правильно?Нужно ли реализовывать функциональность во фрагменте или есть какой-то другой способ?У меня также есть другие фрагменты в этой деятельности, которые взаимодействуют друг с другом, в зависимости от того, что будет делать пользователь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...