2012-09-26 40 views
0

我有一個線性佈局,我正在以編程方式向它添加新的孩子。但是,當我預計它們將在y軸上堆疊時,它們都在z軸上堆疊在一起。我錯過了什麼?線性佈局不分離我添加的意見

佈局:

featured.xml(用以下的兒童的容器)

  • featured_tab.xml
  • featured_tab.xml
  • featured_tab.xml
  • featured_tab.xml
  • featured_tab.xml

featured.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

</LinearLayout> 

featured_tab.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <Button 
     android:id="@+id/featuredContentBtn" 
     android:layout_width="fill_parent" 
     android:layout_height="30dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:background="#ffffff" /> 

    <ImageView 
     android:id="@+id/featuredContentImg" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_alignBottom="@+id/featuredContentBtn" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:visibility="invisible" 
     android:contentDescription="Featured Content Image" /> 

    <ImageView 
     android:id="@+id/tabGradient" 
     android:layout_width="fill_parent" 
     android:layout_height="10dp" 
     android:layout_alignBottom="@+id/featuredContentBtn" 
     android:layout_alignParentLeft="true" 
     android:src="@drawable/featured_tab_gradient" 
     android:contentDescription="Tab Gradient" /> 

</RelativeLayout> 

代碼

*到featured_tabs添加到功能*

private void loadTabs() { 
     Document doc = XMLParser.getDOM(Featured._xml); 
     NodeList featuredNodes = doc.getElementsByTagName(Featured.TAG_FEATURE); 

     this.removeAllViews(); 

     // loop through all featured nodes <Feature> 
     for (int i = 0; i < featuredNodes.getLength(); i++) { 
      FeaturedTab tab = (FeaturedTab)MainActivity.instance.getLayoutInflater().inflate(R.layout.featured_tab, null); 
      Element element = (Element)featuredNodes.item(i); 
      tab.setTitle(XMLParser.getValue(element, Featured.TAG_TITLE)); 
      tab.setImageURL(XMLParser.getValue(element, Featured.TAG_IMAGE_URL)); 
      tab.setLinkURL(XMLParser.getValue(element, Featured.TAG_LINK_URL)); 
      this.addView(tab); 
     }  
    } 

回答

1

更改featured.xml實際成爲一個LinearLayout並給它一個ID:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/featured_linear_layout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

</LinearLayout> 

而在你的代碼,獲取的LinearLayout和其他佈局添加到ID編程

LinearLayout featured = (LinearLayout)findViewById(R.id.featured_linear_layout); 

for (int i = 0; i < featuredNodes.getLength(); i++) { 
      FeaturedTab tab = (FeaturedTab)MainActivity.instance.getLayoutInflater().inflate(R.layout.featured_tab, null); 
      Element element = (Element)featuredNodes.item(i); 
      tab.setTitle(XMLParser.getValue(element, Featured.TAG_TITLE)); 
      tab.setImageURL(XMLParser.getValue(element, Featured.TAG_IMAGE_URL)); 
      tab.setLinkURL(XMLParser.getValue(element, Featured.TAG_LINK_URL)); 
      featured.addView(tab); 
     }