【问题标题】:How to add custom view in ViewPager for walkthrough如何在 ViewPager 中添加自定义视图以进行演练
【发布时间】:2014-02-14 03:59:05
【问题描述】:

我已经使用 ViewPagerIndicator 来获得 WalkThrough,就像最流行的应用程序一样。但是我不明白如何在 ViewPager 中添加图片,它显示了如何使用该应用程序。

我想要的是这些 Walk Through。

到目前为止我得到了什么。

不知道

如何在 ViewPager 中添加 ImageViewTextView 等自定义视图?

欢迎任何指导。

【问题讨论】:

    标签: android android-viewpager viewpagerindicator walkthrough


    【解决方案1】:

    由于这个问题真的很老,我就写一个简短的一般指南:

    要使用内容填充 viewpager,请将片段添加到适配器,然后将适配器设置为 viewpager。您可以在片段中进行几乎任何布局,将图像/文本等放在那里。

    【讨论】:

      【解决方案2】:

      正如 Inteist 所建议的,可以将任何布局放入片段中并将该片段提供给适配器。

      片段:

          public final class SelectModelFragment extends Fragment {
          private static final String KEY_CONTENT = "SelectModelFragment:Content";
          private static String TAG = SelectModelFragment.class.getSimpleName();
      
          private SelectModel mSelectModelObj;
      
          private CircularImageView mImageView;
      
          public static SelectModelFragment newInstance(SelectModel obj) {
              SelectModelFragment fragment = new SelectModelFragment();
              fragment.mSelectModelObj =obj;
      
              return fragment;
          }
      
          @Override
          public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
      
              if ((savedInstanceState != null) && savedInstanceState.containsKey(KEY_CONTENT)) {
                  mSelectModelObj = savedInstanceState.getParcelable(KEY_CONTENT);
              }
          }
      
          @Override
          public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
              View view = inflater.inflate(R.layout.fragment_select_model, container, false);
              mImageView = (CircularImageView)view.findViewById(R.id.fragment_select_model_iv);
              return view;
          }
      
          @Override
          public void onSaveInstanceState(Bundle outState) {
              super.onSaveInstanceState(outState);
              outState.putParcelable(KEY_CONTENT, mSelectModelObj);
          }
      }
      

      片段适配器:

      public class SelectModelAdapter extends FragmentPagerAdapter {
      
          ArrayList<SelectModel> mList;
          private int mCount;
          private static final String TAG = SelectModelAdapter.class.getSimpleName();
      
          public SelectModelAdapter(FragmentManager fm, ArrayList<SelectModel> mList) {
              super(fm);
              this.mList = mList;
              mCount =  mList.size();
          }
      
          @Override
          public Fragment getItem(int position) {
              return SelectModelFragment.newInstance(mList.get(position));
          }
      
          @Override
          public int getCount() {
              return mCount;
          }
      
          @Override
          public CharSequence getPageTitle(int position) {
              return TAG;
          }
      
          public void setCount(int count) {
              if (count > 0 && count <= 10) {
                  mCount = count;
                  notifyDataSetChanged();
              }
          }
      }
      

      Activity:ViewPager 有提供 Fragment 的 Fragment Adapter。

      public class SelectModelActivity extends BaseSliderActivity {
      
          private ViewPager mPager;
          private SelectModelAdapter mAdapter;
      
          private ArrayList<SelectModel> mList;
          private void setAdapter() {
                  mAdapter = new SelectModelAdapter(getSupportFragmentManager(), mList);
                  mPager.setAdapter(mAdapter);
                  mIndicator.setViewPager(mPager);
              }
      }
      

      【讨论】:

      猜你喜欢
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2013-01-31
      • 1970-01-01
      相关资源
      最近更新 更多