Android视图无法刷新

时间:2012-06-23 11:16:56

标签: android android-layout

我尝试使用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);时刷新除外,并为布局添加新视图!

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

已修复,将visibility(View.GONE);和addView添加到布局的创建中,然后只需在需要时显示布局。