2013-11-22 25 views
7

Ich habe Ansicht Pager als Liste Artikel Reihe, und ich bin Daten an den Pager des Adapters Einstellung in der Liste anzuzeigen view.Here ist mein Code:Set Ansicht Pager Höhe Dynamisch

Pager_Item Layout-

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/inner_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" 
    android:orientation="horizontal" > 

    <ImageView 
     android:id="@+id/icon" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_marginRight="6.0dip" 
     android:src="@drawable/ic_launcher" /> 

    <TextView 
     android:id="@+id/text" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:gravity="center_vertical" 
     android:text="Example Value" 
     android:textAppearance="?android:textAppearanceMedium" /> 

</LinearLayout> 

Listenansicht Row Artikel

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

    <android.support.v4.view.ViewPager 
     android:id="@+id/mypager" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 

Listview GETV iew

ViewHolder holder; 
    if(rowView==null){ 
     holder = new ViewHolder(); 
     LayoutInflater inflater = (LayoutInflater) context 
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     rowView = inflater.inflate(R.layout.horizontal_list_item, parent,false); 
     MyPagerAdapter adapter = new MyPagerAdapter(context); 
     ViewPager myPager = (ViewPager) rowView.findViewById(R.id.mypager); 
     myPager.setAdapter(adapter); 
     myPager.setCurrentItem(4, true); 

     rowView.setTag(holder); 
    } 
    else{ 
     holder = (ViewHolder) rowView.getTag(); 
    } 

MyPagerAdapter

@Override 
public Object instantiateItem(View container, final int position) { 
LayoutInflater inflater = (LayoutInflater) context 
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
LinearLayout layout = (LinearLayout) inflater.inflate(
     R.layout.inner_layout_file, null); 

TextView tv_view = (TextView) layout.findViewById(R.id.text); 
tv_view.setText("Example Item " + position); 
((ViewPager) container).addView(layout); 

}); 
return layout; 

Problem: Das Problem, das ich ist bin vor, dass, wenn ich die Höhe der Ansicht Pager in XML-Datei zu beheben, dann zeigt mein Code, um die Daten Andernfalls, wenn ich die Höhe meines Pagers als WRAP_CONTENT oder MATCH_PARENT festlege, werden zur Laufzeit des Codes auf dem Bildschirm keine Sichten angezeigt.

Warum verhält es sich so? Ich möchte nicht die Höhe des View Pager fest codieren.

Bitte helfen Sie mir dabei, lassen Sie mich wissen, wenn Sie Fragen haben?

+1

konnten Sie es funktionieren lassen? – AlvaroSantisteban

+0

Ja, ich hatte meinen Weg frei –

+1

Denkst du, du könntest die Lösung posten? Ich denke, es wäre nützlich :) – AlvaroSantisteban

Antwort

1

in Ihrem instantiate Artikel, verwenden Sie Behälter, die Ihre Ansicht Pager ist,