Я попытался использовать 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);
, и добавьте новое представление в макет!
Спасибо за вашу помощь!
Исправлено, добавлена visibility(View.GONE);
и addView для создания макетов, а затем просто сделать макеты видимыми, когда им была нужна их.