android – 图库:选中项目中的效果

前端之家收集整理的这篇文章主要介绍了android – 图库:选中项目中的效果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我需要一起滚动项目,所选项目应该向下扩展一部分.

我目前正在使用一个Gallery(我尝试使用viewflow和viewpager,但这些项目之间有很大的空间),但我需要知道如何才能实现此效果.

我有2个想法,但我不知道如何实现它.

1)可扩展部分是LinearLayout,其中visibility = gone,当选择该项时,此布局应该是可见的. (图库没有“onItemSelectedListener”)

2)将每个元素视为一个片段(一旦我使用一个使用它的Viewpager,https://github.com/mrleolink/SimpleInfiniteCarousel)

它不一定是画廊,任何想法都是受欢迎的

我正在开展一项活动.

最佳答案
取决于您想要的行为.有些问题可以一次扩展多个项目吗?您是希望将视图分页(捕捉到位)还是平滑滚动它们?

我有一个建议是为单个单元格制作自定义视图.然后以编程方式将它们添加到Horizo​​ntalScrollView对象.

  1. HorizontalScrollView hsv = new HorizontalScrollView(activity);
  2. LinearLayout hll = new LinearLayout(activity);
  3. hll.setOrientation(LinearLayout.HORIZONTAL);
  4. for(int i=0;i

CustomExpandView将用于您的单元格,可能是这样的……

  1. public class CustomExpandView extends RelativeLayout implements OnClickListener {
  2. MyActivity mActivity = null;
  3. ImageView ivImage,ivOverImage;
  4. RelativeLayout rlView;
  5. public CustomExpandView(Context context) {
  6. super(context);
  7. initialize();
  8. }
  9. public CustomExpandView(Context context,AttributeSet attrs) {
  10. super(context,attrs);
  11. initialize();
  12. }
  13. public void initialize() {
  14. mActivity = (MyActivity) this.getContext();
  15. LayoutInflater inflater = (LayoutInflater) mActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  16. inflater.inflate(R.layout.custom_cell_expand,this,true);
  17. //you can initialize subviews here
  18. rlView = (RelativeLayout) getChildAt(0);
  19. ivImage = (ImageView) rlView.getChildAt(0);
  20. ivOverImage = (ImageView) rlView.getChildAt(1);
  21. rlView.setOnFocusChangeListener(new OnFocusChangeListener(){
  22. @Override
  23. public void onFocusChange(View v,boolean hasFocus) {
  24. LinearLayout expand = v.findViewById(R.id.view_i_want_to_expand);
  25. if(hasFocus)
  26. expand.setVisibility(View.VISIBLE);
  27. else
  28. expand.setVisibility(View.GONE);
  29. }
  30. });
  31. }

猜你在找的Android相关文章