0

以编程方式,我在其中定义了一个RelativeLayoutTextView(称为标题),如下所示:

RelativeLayout layout = new RelativeLayout(this);
final RelativeLayout.LayoutParams parameters_title = 
      new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, 
                                       RelativeLayout.LayoutParams.WRAP_CONTENT);  
title.setLayoutParams(parameters_title);
layout.addView(title,parameters_title);

我打算以后再textviews补充buttons。但是现在,我想将其“转换”(我不确定如何将其转化为文字)RelativeLayout为 aView以便将其转化为WindowManager. 我试图这样使用LayoutInflater,但它不起作用

LayoutInflater layoutInflater = 
       (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
myView = layoutInflater.inflate(layout, null );

那么目标就是myView投入WindowManger通过addView。我怎样才能View从我的RelativeLayout?

4

2 回答 2

0

您可以通过 getChildAt 执行此操作,但您必须保留要从布局中获取的视图的位置。为避免这种情况,您可以为视图设置一个 id 并使用 findViewById() 获取视图。如果从 xml 扩展视图,您将获得与 xml 相同的视图。如果您将一些新视图添加到 relativeLayout 它不会影响您从 xml 膨胀的视图。

添加视图时:

 myView.setId(id);
 layout.addView(myView);

当你检索时

 View myView = layout.findViewById(id);
于 2013-08-24T10:09:15.013 回答
0

RelativeLayoutextendsViewGroupgetChildCount()getChildAt(int index)方法。所以你可以尝试的是:

 for(int i=0;i<relativeLayout.getChildCount();i++){
       View child=relativeLayout.getChildAt(i);
       //your processing....
  }
于 2013-08-24T09:53:01.363 回答