2013-11-22 5 views
7

У меня есть вид пейджера как элемент списка подряд, и я устанавливаю данные адаптера пейджера, чтобы показать в списке view.Here мой код:Set View Пейджер Высота Динамически

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> 

List View Row Item

<?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 МЭН

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; 

Проблема: Проблема, с которой я столкнулся в том, что, когда я фиксирую высоту View Пейджер в файле XML, то мой код показывает данные , иначе, если я установил высоту своего пейджера как WRAP_CONTENT или MATCH_PARENT, во время выполнения кода на экране не отображаются никакие представления.

Почему это так. Я не хочу жестко кодировать высоту View Pager.

Пожалуйста, помогите мне в этом, дайте мне знать, если у вас есть вопросы?

+1

Вы могли заставить его работать? – AlvaroSantisteban

+0

Да, я сделал свой выход –

+1

Как вы думаете, вы можете отправить заявку? Я думаю, это было бы полезно :) – AlvaroSantisteban

ответ

1

в вашем пункте Instantiate, используйте контейнер, который является вашим View пейджера, чтобы установить макет Params на нем

Смежные вопросы