Viewpager+fragment,我用的就是这个,挺实用

解决方案 »

  1.   

    就用楼上说的方法,tab用textview自定义就行
      

  2.   

    额,不好意思,引用错了,基本按1楼说的Viewpager+fragment,因为底部的和页面要相互作用,按底部按钮切换fragement,滑动页面底部的tab也跟着切换
      

  3.   

    @  lxfhjjsfq   and   a61614616 请问 就是说                大图
    小icon  小 icon  小icon
    小icon  小 icon  小icon
    小icon  小 icon  小icon
    以上就采用  gridview   底部的菜单 就使用  Viewpager+fragment 是这个意思吗?
      

  4.   

             大图
    小icon  小 icon  小icon
    小icon  小 icon  小icon
    小icon  小 icon  小icon
    把它放在一个fragment里面。
    然后用ViewPager添加fragment,这样可以有多个页面了,底部的按钮可以根据ViewPager的滑动切换事件设置相应的按钮状态或,可以点击按钮设置ViewPager在第几页(第几个fragment)。
      

  5.   

    谢谢上面各位朋友的回复。对fragment不熟悉,在网上查到说 “SDK下面的API Demo里面就包含了Fragment的各种使用例子”(http://www.jb51.net/article/40108.htm), 但是我在 sdk下面,并没有找到各种使用例子呀。
    就只找到这个:sdk\samples\android-20\ui\FragmentTransition知道在sdk中有关 fragment的例子的位置的朋友麻烦告知下吧,谢啦
      

  6.   

    不一定非要用fragment,用 view 也是可以的
    ViewPager + View,
    适配器用pagerAdapter,底部菜单用checktextview, 根据viewpager的currentposition来切换checktextview
      

  7.   

    谢谢楼上各位朋友的回复。@lxfhjjsfq ,  请问
    我建了个  homefragment.java 的文件
    在 initViews()添加 那
          大图
    小icon  小 icon  小icon
    小icon  小 icon  小icon
    小icon  小 icon  小icon
    后, 怎么添加相应的 点击事件呢?也就是  点击 小icon 会触发相应的事件。麻烦再帮忙回复下,可以的话,麻烦给个小例子吧,关于点击事件的。谢啦
      

  8.   

    让每个GricView的设置监听grid.setOnItemClickListener()
      

  9.   

    @ lxfhjjsfq , 谢谢您的回答另外 我有个疑问,就是 用GricView显示的 9个图片,我之前没有用fragment的时候,当点击其中一个小icon的时候,
    小icon旁边会是会显示蓝色的,有没有办法去掉这种效果呢?应该想加个 selector,当点击的时候,icon切换下就行了。
      

  10.   

    xml中: android:listSelector="#00000000"  android:listSelector="@android:color/transparent"代码中:list.setSelector(new ColorDrawable(Color.TRANSPARENT));
      

  11.   

    底部菜单可以自己写一个组合view Android Fragment应用实战,使用碎片向ActivityGroup说再见
    还有好多类似的文章,这里就不例举了。
      

  12.   

    谢谢楼上所有朋友的热心回复。现在弄那frament 的时候, mTitleTv提示错误。 麻烦会的朋友帮忙回复,谢啦
    在 public class HomeFragment extends BaseFragment {
         
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.activity_maint_collect_test, container,false);
    mTitleTv = (TextView) view.findViewById(R.id.title_tv);  //提示错误 title_tv cannot be resolved or is not a field

    return view;
    }
    }
    在layout目录下有:
    activity_maint_collect_test.xml:<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
      
        android:orientation="vertical" >
        
        <TextView 
            android:id="@+id/title_tv"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="center"
            android:text="collect"/></LinearLayout>
      

  13.   


    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    View view = inflater.inflate((R.layout.activity_maint_collect_test, null);
                    mTitleTv = (TextView) view.findViewById(R.id.title_tv); 
    return view;
    }
    这样试试
      

  14.   

    @lxfhjjsfq ,  谢谢回复 ,但是按照您的修改 还是报同样的错误呀。
    麻烦再帮忙看看问题是出在哪里吧我的代码是这样的:
    public class HomeFragment extends BaseFragment { private static final String TAG = "HomeFragment";
    private TextView mTitleTv; public static HomeFragment newInstance() {
    HomeFragment homeFragment = new HomeFragment(); return homeFragment;
    } @Override
    public void onAttach(Activity activity) {
    super.onAttach(activity);
    } @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    } @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.activity_maint_collect_test, null);
    mTitleTv = (TextView) view.findViewById(R.id.title_tv);

    return view;
    }。
    }
    而在BaseFragment.java
    public abstract class BaseFragment extends Fragment {
    private static final String TAG = "BaseFragment";
    @Override
    public void onAttach(Activity activity) {
    super.onAttach(activity);
    Log.i(TAG, "yong: onAttach "); } @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.i(TAG, "yong: onCreate() ");
    } @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    Log.i(TAG, "yong: onCreateView() ");
    return super.onCreateView(inflater, container, savedInstanceState);
    } @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    Log.i(TAG, "yong: onViewCreated() ");
    } @Override
    public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    Log.i(TAG, "yong: nActivityCreated() ");
    } @Override
    public void onStart() {
    super.onStart();
    Log.i(TAG, "yong: onStart() ");
    } @Override
    public void onResume() {
    super.onResume();
    Log.i(TAG, "yong:onResume()");
    } @Override
    public void onPause() {
    super.onPause();
    Log.i(TAG, "yong:onPause()");
    } @Override
    public void onStop() {
    super.onStop();
    Log.i(TAG, "yong:onStop()");
    } @Override
    public void onDestroyView() {
    super.onDestroyView();
    Log.i(TAG, "yong:onDestroyView()");
    } @Override
    public void onDestroy() {
    super.onDestroy();
    Log.i(TAG, "yong:onDestroy()");
    } @Override
    public void onDetach() {
    super.onDetach();
    Log.i(TAG, "yong:onDetach()");
    } /**
     * fragment name
     */
    public abstract String getFragmentName();}
      

  15.   

    @ lxfhjjsfq   谢谢回复
    项目好紧呀
    能不能加我 这个 qq:308457714
    我想把我这边的代码发给您看看,估计您能很快就看出问题来的了。如果不方便的话,也没关系了。谢啦
      

  16.   

    @ lxfhjjsfq   
    如果不方便加qq的话,那麻烦把刚才您说运行我以上的代码没有问题的 源码发给我那qq邮箱吧qq:[email protected]
    谢谢
      

  17.   

    @  lxfhjjsfq  谢谢您的帮忙。但是问题还没有解决。有没有别的朋友再帮忙下呢(方便的话,麻烦添加下上面的qq号码吧)