android – 如何以编程方式刷新线性布局

前端之家收集整理的这篇文章主要介绍了android – 如何以编程方式刷新线性布局前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我的应用程序有一个LinearLayout,LinearLayout由3个Linearlayouts组成,每个线性布局都有一个Relativelayout和一个线性布局(最初这些线性布局的可见性消失了).如果单击相对布局,则将显示相关的线性布局.但是如何在单击相对布局后刷新整个线性布局.

码:

private OnClickListener exit2Listener = new OnClickListener()
{
    public void onClick(View v)
    {
       if(!exit2status)
       {
          if(RB_Constant.upcomingexits_obj.response.size() > 1)
          {
             if(RB_Constant.upcomingexits_obj.response.get(1).listRestaurants.size() > 0)
             {
                 // Create the views on the fly instead of using the ListView
                 UpcomingResultsListViewAdapter2 rbupcadapter2 = new UpcomingResultsListViewAdapter2(RB_UpcomingExits.this);
                 int numItems2 = 0;

                 if(RB_Constant.upcomingexits_obj.response.get(1).listRestaurants.size() > 0)
                 {
                    numItems2 = RB_Constant.upcomingexits_obj.response.get(1).listRestaurants.size();
                 }

                 //linearLayout2
                 for(int position=0; position < numItems2; position++)
                 {
                    View convertview = null;
                    convertview = rbupcadapter2.getView(position,convertview,null);
                    listLayout2.addView(convertview);
                 }
             }              
          }
          else
          {
             //toastMsg("No results!");
          }
          listLayout2.setVisibility(View.VISIBLE);
          exit2status=true;

          if(!exit1status || exit3status || exit4status || exit5status)
          {
             //System.out.println("exit2 GONE");
             listLayout1.setVisibility(View.GONE);
             listLayout3.setVisibility(View.GONE);
             exit1status = false;
             exit3status = false;

          }

          LLExitDetails.invalidate();
       }
       else
       {
          System.out.println("exit2 GONE");
          listLayout2.setVisibility(View.GONE);
          exit2status = false;

          LLExitDetails.invalidate();
       }
    }       
};
最佳答案
检索包含所有内容的LinearLayout.当您需要“刷新”它时,请调用invalidate.只是在UI线程中调用它.如果你在另一个线程(比如一个计时器)中调用它,那么调用postInvalidate.两者都导致在OS准备好调用它时调用View的onDraw方法.

猜你在找的Android相关文章