2016-01-04 32 views
1

我想在Listview的第一行设置一个ViewFlipper这样在列表视图的第一行添加ViewFlipper

enter image description here

独立,我可以在这样的ListView的顶视图设置的鳍状肢:

mListView = (ListView) findViewById(R.id.mainListView); 
viewFlipper =(ViewFlipper)findViewById(R.id.viewFlipper1); 
setViewFlipperView(); 
CustomGestureDetector customGestureDetector = new CustomGestureDetector(); 
mGestureDetector = new GestureDetector(this, customGestureDetector); 

String[] abc = new String[] { "A", "B", "C", "D", 
            "E", "F", "G", "H","I","J","K","L","M","N","O","P","Q","R","S" 
            ,"T","U","V","W","X","Y","Z"}; 
ArrayList<String> abcList = new ArrayList<String>(); 
abcList.addAll(Arrays.asList(abc)); 

listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow, abcList); 
mListView.setAdapter(listAdapter); 

private View setViewFlipperView(){ 
    int[] resources = { 
      R.drawable.ic_launcher, 
      R.drawable.ic_launcher, 
      R.drawable.ic_launcher, 
      R.drawable.ic_launcher, 
      R.drawable.ic_launcher, 
      R.drawable.ic_launcher 
    }; 

    for (int i = 0; i < resources.length; i++) { 
     ImageView imageView = new ImageView(this); 
     imageView.setImageResource(resources[i]); 
     viewFlipper.addView(imageView,i); 
    } 
    return viewFlipper; 

} 
@Override 
public boolean dispatchTouchEvent(MotionEvent ev) { 
    mGestureDetector.onTouchEvent(ev); 
    return super.dispatchTouchEvent(ev); 
} 
@Override 
public boolean onTouchEvent(MotionEvent event) { 
    mGestureDetector.onTouchEvent(event); 
    return super.onTouchEvent(event); 
} 
class CustomGestureDetector extends GestureDetector.SimpleOnGestureListener { 
     @Override 
     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
      // Swipe left (next) 
      if (e1.getX() > e2.getX()) { 
       viewFlipper.setInAnimation(context, R.anim.left_in); 
       viewFlipper.setOutAnimation(context, R.anim.left_out); 

       viewFlipper.showNext(); 
      } 

      // Swipe right (previous) 
      if (e1.getX() < e2.getX()) { 
       viewFlipper.setInAnimation(context, R.anim.right_in); 
       viewFlipper.setOutAnimation(context, R.anim.right_out); 

       viewFlipper.showPrevious(); 
      } 

      return super.onFling(e1, e2, velocityX, velocityY); 
     } 
    } 

和XML的样子:

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

<ViewFlipper 
    android:id="@+id/viewFlipper1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 
</ViewFlipper> 

<ListView android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/mainListView"> 
</ListView> 

但同时滚动listview观点脚蹼在上面停留,现在我的问题是,是否有可能在listview的顶行设定ViewFlipper也使其滚动时listview滚动。我想我很清楚我的问题。请帮忙。

+0

http://stackoverflow.com/questions/14531897/viewflipper-in-listview-rowhttp://stackoverflow.com/questions/20272244/maintain-the-state-of-view- flipper-list-view –

+0

@AmarbirSingh网址不开放 –

+0

http://stackoverflow.com/questions/14531897/viewflipper-in-listview-rowhttp://stackoverflow.com/questions/20272244/maintain-the-state列表视图 –

回答

2

只要做到这一点。添加视图鳍作为列表视图的标题,它将工作正常,如果你只需要在列表视图中的一个视图鳍状肢。如果你需要更多,那么你应该在适配器getView()中做到这一点。

使用鳍状肢想要使用。让我知道如果有任何混淆

+0

好的解决方案谢谢@ADM –

+0

您的欢迎兄弟... – ADM

0

解决的问题我有我的问题的解决方案,通过增加viewflipper视图的列表视图mListView.addHeaderView(flipperView);HeaderView,现在viewFlipper视图的也与列表视图项目滚动一些变化我已经在我的代码完成:

LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE); 
convertViewHeader = inflater.inflate(R.layout.myflipperiew , null); 
ViewFlipper flipper=(ViewFlipper)convertViewHeader.findViewById(R.id.myflipper); 
mListView = (ListView) findViewById(R.id.mainListView); 
mListView.addHeaderView(flipper);