Android View не обновляется

1

Я попытался использовать invalidate() для обновления моего представления, и это не сработает. Я знаю, что есть другой способ обновить, используя draw(Canvas canvas).

Может ли кто-нибудь объяснить мне, как и почему использовать метод draw? Что такое холст? (что вид, который я бы хотел перерисовать?)

Это пример кода в том, как он будет использоваться:

    if(pageNumber == 1)
    {
        if(pageCount == --lastPageCount)
        {
            page2Layout.setVisibility(View.GONE);
            page1Layout.setVisibility(View.VISIBLE);
        }
        if(created1 == false)
        {
            help.setOrientation(LinearLayout.HORIZONTAL);
            help.setLayoutParams(params);

            helpText.setLayoutParams(params);
            helpText.setText("TEST!\n\n" + 
                    "test\n" +
                    "Test");

            help.addView(helpText);
            page1Layout.addView(help);
            newSheetLayoutV.addView(page1Layout);
            created1 = true;
        }
    }

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

    else if(pageNumber == 4)
    {
        if(pageCount == ++lastPageCount)
        {
            page3Layout.setVisibility(View.GONE);
            page4Layout.setVisibility(View.VISIBLE);
        }
        else if (pageCount == --lastPageCount)
        {
            page5Layout.setVisibility(View.GONE);
            page4Layout.setVisibility(View.VISIBLE);
        }

        if(created4 == false)
        {
            LinearLayout horizontalPageLayout = new LinearLayout(this);
            horizontalPageLayout.setOrientation(LinearLayout.HORIZONTAL);
            horizontalPageLayout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

            TextView testText = new TextView(this);
            testText.setLayoutParams(params);
            testText.setText("Test!");

            page4Layout.addView(testText);

            newSheetLayoutV.addView(page4Layout);

            created4 = true;
        }
    }

По сути, код работает нормально, за исключением обновления, когда я page1Layout.setVisibility(View.GONE); просмотра1Layout.setVisibility page1Layout.setVisibility(View.GONE); , и добавьте новое представление в макет!

Спасибо за вашу помощь!

Теги:
android-layout

1 ответ

0

Исправлено, добавлена visibility(View.GONE); и addView для создания макетов, а затем просто сделать макеты видимыми, когда им была нужна их.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню