2013-02-27 77 views
2

昨天的方向相反时,我发布了关于PagerAdapter,以及如何使用数据库时,需要实现它的问题。我设法把它整理出来,但是,我不希望viewpager向左滑动/向左滚动,我想反过来(向右滑动)。以下是我的代码:在viewpager刷卡的阿拉伯语

public class ScrollViewTest6 extends ActionBarAppActivity { 

    private ViewPager awesomePager; 
    private static int NUM_AWESOME_VIEWS; 
    private Context cxt; 
    private AwesomePagerAdapter awesomeAdapter; 
    TextView tv; 
    int _id; 
    int row_numbers; 
    int row_position;  
    private DataAdapter mySQLiteAdapter; 
    private Cursor cursor; 


    /** Called when the activity is first created. */ 
@SuppressWarnings("deprecation") 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    cxt = this; 

    awesomeAdapter = new AwesomePagerAdapter(awesomeAdapter); 
    awesomePager = (ViewPager) findViewById(R.id.awesomepager); 
    awesomePager.setAdapter(awesomeAdapter); 

    mySQLiteAdapter = new DataAdapter(this); 
    mySQLiteAdapter.createDatabase(); 
    mySQLiteAdapter.open(); 

    Bundle extras = getIntent().getExtras(); 
    if (extras == null) { 
     return; 
    } 

    _id = extras.getInt("id"); 
    row_numbers = extras.getInt("row_num"); 
    row_position = extras.getInt("row_pos"); 


    NUM_AWESOME_VIEWS = row_numbers; 

    awesomePager.setCurrentItem(row_position); 

    cursor = mySQLiteAdapter.get_AllColumns(); 
    this.startManagingCursor(cursor); 


    this.awesomePager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() 
    { 
     @Override 
     public void onPageScrollStateChanged(int arg0) { 
     } 

     @Override 
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels){ 
     } 

     @Override 
     public void onPageSelected(int position){ 
     } 

    }); 
} 

private class AwesomePagerAdapter extends PagerAdapter{ 

    public AwesomePagerAdapter(PagerAdapter fm) { 
     } 


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



    @Override 
    public int getItemPosition(Object object) {return POSITION_NONE;} 
      @Override 
      public Object instantiateItem(ViewGroup collection, int position) { 

       LayoutInflater inflater = (LayoutInflater)cxt.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       View layout = inflater.inflate(R.layout.mylayout, null); 
       TextView Title = (TextView)layout.findViewById(R.id.title); 


       if (cursor != null) { 
        if (cursor.moveToPosition(position)) {       
         //do { 
          //cursor.moveToPosition(position); 
          String text = cursor.getString(
           cursor.getColumnIndexOrThrow(DataAdapter.KEY_Title)); 

          Title.setText(text);  
        } 
       }      

       ((ViewPager) collection).addView(layout,0); 
       return layout; 
      } 


      @Override 
      public void destroyItem(View collection, int position, Object view) { 
        ((ViewPager) collection).removeView((View) view); 
      } 

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

      @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) { 
      } 

     } 
} 

我知道有些人建议使用 setCurrentItem(INT); //最后一页

但是,使用ListView次序冲突。

例如列表视图:

当我们使用线之上它显示1 < - 2 < - 3

(从3开始),我想3 < - 2 < - 1(从1开始)

+0

为什么不能简单地恢复列表那么使用'setCurrentItem(count-1)'? – 2013-02-27 10:28:42

+0

请修复代码格式。 – Barney 2013-02-27 10:31:27

+0

感谢您的快速反应... @ AleksG我已经尝试setCurrentItem(count - 1),但它不工作。 @BarneyHsiao现在看起来好看吗? – 2013-02-27 10:59:14

回答

0

由于AleksG

下面是他建议做哪些工程所要求的目的,所以下面的行添加到列表:

setCurrentItem(count - 1) 

然后在光标则需要建立在列表顺序再次光标"_desc"

感谢。

1

我面对这个问题,我有这个库 解决使用它,您的分页将工作从右到左完美 它的工作一样ViewPager

https://github.com/diego-gomez-olvera/RtlViewPager

<com.booking.rtlviewpager.RtlViewPager 
      android:id="@+id/arabicViewPager" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 

arabicViewPager = (ViewPager) findViewById(R.id.arabicViewPager); 
adapterViewPager = new Adpt_fragmentPageAdapter(getSupportFragmentManager()); 
    arabicViewPager.setAdapter(adapterViewPager); 

tabLayout = (TabLayout) findViewById(R.id.sliding_tabs); 
tabLayout.setupWithViewPager(arabicViewPager);