Как отобразить макет в зависимости от состояния? - PullRequest
0 голосов
/ 07 мая 2018

У меня element называется viewtype как 1,2,3 ... из файла JSON. Я получаю разные данные на основе viewtype. Теперь в onCreate мне нужно отобразить макет на основе viewtype. Как я могу это сделать? на основе ifCondition, возможно ли это сделать.

1 Ответ

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

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

Этот пример будет намного более объяснительным:

В деятельности:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    switch(viewType){
        case 1:
            setContentView(R.layout.layout_1);
            break;
        case 2:
            setContentView(R.layout.layout_2);
            break;
        default:
            setContentView(R.layout.layout_default);
            break;
    }
}

И во фрагменте:

@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
                     Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view;
    switch(viewType){
    case 1:
        view = inflater.inflate(R.layout.layout_1, container, false);
        break;
    case 2:
        view = inflater.inflate(R.layout.layout_2, container, false);
        break;
    default:
        view = inflater.inflate(R.layout.layout_default, container, false);
        break;
    }
    return view;
}

Но вам нужно будет обрабатывать разные виды (если они есть) для каждого отдельного макета, поэтому я бы рекомендовал помещать методы в каждое условие, чтобы раздувать макет и обрабатывать разные виды.

С уважением, Матье

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