2017-03-03 65 views
0

我想以編程方式替換LinearLayout中的視圖。我嘗試以下方法:替換LinearLayout中的視圖

public void drawView() { 
    //remove previous view, if exists 
    if(((LinearLayout) findViewById(R.id.chartView)).getChildCount() > 0) { 
     ((LinearLayout) findViewById(R.id.chartView)).removeAllViewsInLayout(); 
    } 

    //generate new view 
    CustomView view = new CustomView(this,parameters); 

    //add new view to layout 
    ((LinearLayout) findViewById(R.id.linLayout)).addView(view); 
} 

的LinearLayout中,該方法是指在XML定義:

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/linLayout"> 
</LinearLayout> 

該視圖正確地繪製在第一時間(當沒有視圖尚未在的LinearLayout但drawView函數被稱爲第二次,之前的視圖被刪除,但沒有新的視圖中。我如何編程方式替換該程序生成的觀點?

回答

2

你是從這個佈局移除((LinearLayout) findViewById(R.id.chartView)).removeAllViewsInLayout(); ,但增加了這一點:((LinearLayout) findViewById(R.id.linLayout)).addView(view);

R.id.chartView

更換 R.id.linLayout