如何动态创建相对布局

时间:2013-09-19 10:14:51

标签: android android-layout android-listview

我想动态生成相对布局因此,我可以从服务器获取数据多次重复数据。我想动态创建的布局ID是depart_flight_details_duration,{{1}如何在一个循环中创建它们以便它将重复多个。请帮助我,这是我在android中的新功能。

XML

passenger_details_layout

3 个答案:

答案 0 :(得分:0)

您必须使用自定义列表视图。

对于一个布局中的两个列表视图,请参阅此链接Link

答案 1 :(得分:0)

来自here

的LayoutInflater简单程序

a - 将此布局设为activity_main.xml -

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_layout"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
 </LinearLayout>

b-这是我们将动态添加的隐藏布局,将其另存为hidden_​​layout.xml

<LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/hidden_layout"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:orientation="vertical">

<TextView  
     android:id="@+id/text_view"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:text="Hello, this is the inflated text of hidden layout"/>

<EditText  
     android:id="@+id/edit_text"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:text="Hello, this is your name"/>
</LineraLayout>

c-现在这是主要活动的代码 -

public class MainActivity extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

for(int i=0;i<numberOfRows;i++){
LinearLayout main = (LinearLayout)findViewById(R.id.main_layout);
        View view = getLayoutInflater().inflate(R.layout.hidden_layout, main,false);
        main.addView(view);
}
}

 }

答案 2 :(得分:0)

RelativeLayout mDisplayBlock = (RelativeLayout)
     LayoutInflater.from(getActivity()).inflate(
     depart_flight_details_duration, null);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
            LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);

    mDisplayBlock.setLayoutParams(params);

您可以将此布局添加到主滚动视图

main_scroll_view_layout.addView(mDisplayBlock); 

只需将此代码放在代码中的适当位置即可。