2012-06-29 42 views
8

Tôi đang cố gắng thêm Viewpager (sử dụng thư viện hỗ trợ4) vào tiêu đề danh sách nhưng không hiển thị bất kỳ thứ gì. đây là mã của tôi xin vui lòng giúp đỡ. Nó sẽ có trong tiêu đề danh sách không phải là một mục nên nó không phải là một vấn đề.Thêm viewpager làm tiêu đề cuộn trong listview

public class CustomActivity extends ListActivity { 

    private static int NUM_AWESOME_VIEWS = 20; 
    private Context cxt; 
    private CustomPageAdapter pageAdapter; 

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

     String[] items = { "this", "is", "my", "list", "view", "data" }; 
     this.cxt = this; 

     ViewPager viewPager = new ViewPager(this); 

     pageAdapter = new CustomPageAdapter(); 
     viewPager.setAdapter(pageAdapter); 
     viewPager.requestLayout(); 

     getListView().addHeaderView(viewPager); 
     setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items)); 

    } 

    private class CustomPageAdapter extends PagerAdapter{ 


      @Override 
      public int getCount() { 
        return NUM_AWESOME_VIEWS; 
      } 

     /** 
     * Create the page for the given position. The adapter is responsible 
     * for adding the view to the container given here, although it only 
     * must ensure this is done by the time it returns from 
     * {@link #finishUpdate()}. 
     * 
     * @param container The containing View in which the page will be shown. 
     * @param position The page position to be instantiated. 
     * @return Returns an Object representing the new page. This does not 
     * need to be a View, but can be some other container of the page. 
     */ 
      @Override 
      public Object instantiateItem(View collection, int position) { 
        TextView tv = new TextView(cxt); 
        tv.setText("Bonjour PAUG " + position); 
        tv.setTextColor(Color.WHITE); 
        tv.setTextSize(20); 

        ((ViewPager) collection).addView(tv,0); 

        return tv; 
      } 

     /** 
     * Remove a page for the given position. The adapter is responsible 
     * for removing the view from its container, although it only must ensure 
     * this is done by the time it returns from {@link #finishUpdate()}. 
     * 
     * @param container The containing View from which the page will be removed. 
     * @param position The page position to be removed. 
     * @param object The same object that was returned by 
     * {@link #instantiateItem(View, int)}. 
     */ 
      @Override 
      public void destroyItem(View collection, int position, Object view) { 
        ((ViewPager) collection).removeView((TextView) view); 
      } 



      @Override 
      public boolean isViewFromObject(View view, Object object) { 
        return view==((TextView)object); 
      } 


     /** 
     * Called when the a change in the shown pages has been completed. At this 
     * point you must ensure that all of the pages have actually been added or 
     * removed from the container as appropriate. 
     * @param container The containing View which is displaying this adapter's 
     * page views. 
     */ 
      @Override 
      public void finishUpdate(View arg0) { 

      } 


      @Override 
      public void restoreState(Parcelable arg0, ClassLoader arg1) { 

      } 

      @Override 
      public Parcelable saveState() { 
        return null; 
      } 

      @Override 
      public void startUpdate(View arg0) { 

      } 

} 

} 
+0

bạn đã thử sử dụng Hoạt động với Bố cục có ListView sau đó thêm ViewPager phía trên ListView – Proxy32

+0

@ Proxy32 tôi muốn xem máy nhắn tin trong tiêu đề cuộn không phải là tiêu đề cố định ở trên cùng, vì vậy tôi đã không cố gắng theo cách đó. – user606669

Trả lời

0

header và footer hiển thị danh sách sau setadapter.

nếu bạn dùng thử setadapter và không thể xem chế độ xem. kiểm tra chiều rộng và chiều cao của viewpager.

nếu giá trị chiều rộng hoặc chiều cao của viewpager là 0. tạo LienarLayout (hoặc anyViewGroup) và chế độ xem bổ sung trong nhóm xem với bố cục chiều rộng và chiều cao. và nhóm xem addHeader.

kỹ năng tiếng Anh của tôi không tốt, nếu không hiểu, hãy thêm nhận xét cho tôi.

tôi hy vọng trợ giúp.

Các vấn đề liên quan