2011-12-06 25 views
2

2つのレイアウトxmlファイル "highlights.xml"と "highlights_cell.xml"があります。Android - 親レイアウトにレイアウトを追加する

それぞれの簡略化されたバージョンです。私は、幅/高さ/などを取り除き、ちょうど重要な属性を保持...アイデアはある

highlights.xml

<LinearLayout> 
    <uk.co.jasonfry.android.tools.ui.SwipeView android:id="@+id/swipe_view" /> 
    <uk.co.jasonfry.android.tools.ui.PageControl android:id="@+id/page_control" /> 
</LinearLayout> 

highlights_cell.xml

<LinearLayout android:orientation="vertical"> 
    <LinearLayout android:id="@+id/linear_layout1" android:orientation="horizontal"> 
    <ImageView android:id="@+id/logo" /> 
    <LinearLayout android:id="@+id/linear_layout2" android:orientation="vertical"> 
     <TextView android:id="@+id/title" /> 
     <TextView android:id="@+id/subtitle" /> 
    </LinearLayout> 
    </LinearLayout> 

    <ScrollView android:id="@+id/scroll_view"> 
    <TextView android:id="@+id/description" /> 
    </ScrollView> 
</LinearLayout> 

ました私はいくつかの "ハイライト_セル"をループを通して "ハイライト"に追加したいと考えています。

私は私が正しくセルのレイアウトを追加していないよ、または多分私は「インフレータ」を使用してすべきではないと思われる、それは働いていないとして、次のように一緒にいくつかのテストコードを投げたがまし

...

/** Declare shared variables */ 
SwipeView mSwipeView; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState){ 

    //Initialise layout and variables 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.highlights); 

    //Setup controls 
    mSwipeView = (SwipeView) findViewById(R.id.swipe_view); 

    LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE); 

    //Loop through collection and add views 
    for(int i=0; i<7;i++) 
    { 
     //Create the itemView to use layout xml for each cell 
     View itemView = inflater.inflate(R.layout.highlights_cell, null); 

     //Set values within cell 
     TextView title = (TextView) itemView.findViewById(R.id.title); 
     title.setText("HELLO WORLD_" + i); 

     //add the itemView to main view 
     mSwipeView.addView(itemView); 
    } 
} 

これは、レイアウトを親レイアウトに動的に追加する正しい方法ですか? ありがとう!

+0

を作成する方法についていくつかの詳細情報。問題の原因となる可能性があるため、元の属性(幅/高さなど)をすべて追加する必要があります。 –

+0

私は[ViewPager](http://android-developers.blogspot.com/2011/08/horizo​​ntal-view-swiping-with-viewpager.html)を使用しています。大規模なデータセットに役立つアダプタサポートを備えています。 – kabuko

+0

コメント欄ありがとうございました。私はViewPagerを見ましたが、PageControlの同等の例を見つけることができませんでした(あなたの位置を追跡するビューの下の点) – Peter

答えて

2

いくつかの点を除いて見栄えがよくなります。

カスタムViewGroupにビューを追加しているので、正しくレイアウトされ、その子が表示されていることを確認する必要があります。

また、ViewGroupViewを追加する場合は、そのビューに含めることができるLayoutParamsを指定します。ViewGroup

このコードは正常に見える一見カスタムViewGroup

+0

ありがとうございます – Peter