0

線形レイアウトがあり、プログラムで新しい子を追加しています。ただし、y 軸上でスタックすると予想していたときに、それらはすべて z 軸上で互いに重なり合っています。私は何が欠けていますか?

レイアウトは次のとおりです。

featuring.xml (次の子を持つコンテナ)

  • Featured_tab.xml
  • Featured_tab.xml
  • Featured_tab.xml
  • Featured_tab.xml
  • Featured_tab.xml

注目の.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>

コード

*注目のタブに注目のタブを追加するには*

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);
        }       
    }
4

1 に答える 1

1

yourfeatured.xmlを実際に a に変更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);
        }  
于 2012-09-26T22:14:02.153 に答える