2011-04-22 65 views
3

有沒有一種方法來創建一個新的佈局,然後你可以有你的XML膨脹?片段:以編程方式創建視圖的XML填補

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle icicle){ 

      one_third = (RelativeLayout)getActivity().findViewById(R.id.list3); 

      DisplayMetrics dm = new DisplayMetrics(); 
      getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); 
      String width = "" + dm.widthPixels; 

      int WIDTH; 
      int SIZE; 

      SIZE = Integer.parseInt(width.toString()); 

      WIDTH = (SIZE/3); 

      one_third.setMinimumWidth(WIDTH); 

    View homeselect = inflater.inflate(R.layout.listelements, container, false); 
    setListAdapter(new ArrayAdapter<String>(getActivity(), 
       R.layout.start_row, R.id.label, views)); 
    return homeselect; 

} 

我試圖把這段代碼片段,這裏是我想要創建新的佈局。我想給它的價值WIDHT寬度,然後讓我的XML填補。

回答

1

這個問題是不是真正的片段。這裏的API只是提供Fragment管理的視圖層次結構的一部分。所有佈局都基於視圖層次結構。您 *不*做你的佈局在這裏,因爲你甚至不知道在做佈局的空間。

隨時您使用視圖層次結構的正確答案是相同的:通過onMeasure()和onLayout()參與常規佈局流程。如果標準佈局管理器不能做你想要的,你可以實現你自己的ViewGroup的特殊子類,它根據它獲得的大小做你想要的佈局。

+0

所以這聽起來不錯,並像它會做我想要什麼,但我很喜歡超級小白和不知道如何做到這一點。哈哈。 這會允許我這樣稱呼佈局的XML的內部,而不是和設置它的價值?如果是的話,這是如何做到的?謝謝, – 2011-04-22 16:50:29

+0

沒關係。我想我已經爲我所需要的工作。 – 2011-04-22 18:30:10