2013-11-22 77 views
7

我查看傳呼機作爲一個列表項行,我設置數據傳送到尋呼機的適配器列表view.Here表明的是我的代碼:設置視圖尋呼機高度動態

Pager_Item佈局

<?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> 

列表視圖行項目

<?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; 

問題:我現在面臨的問題是,當我修復查看傳呼機的XML文件中的高度,然後我的代碼顯示了數據,否則如果我將我的尋呼機的高度設置爲WRAP_CONTENT或MATCH_PARENT,則在屏幕上的代碼運行時不會顯示任何視圖。

爲什麼它的行爲如此。我不想硬編碼View Pager的高度。

請幫助我,請讓我知道,如果您有任何疑問?

在實例化項目
+1

你是否能夠使它工作? – AlvaroSantisteban

+0

是的,我已經出去了 –

+1

你認爲你可以發佈解決方案嗎?我認爲它會很有用:) – AlvaroSantisteban

回答

1

,使用容器也就是你查看傳呼機,在其上設置的佈局PARAMS