2011-04-22 93 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