Android---侧滑效果自定义及fragment,tabLyaout实现

记录方便后续使用查找,全部知识参考code小生,需更系统学习直接看他http://www.jianshu.com/p/ea691fda7d2a

效果如图:

Android---侧滑效果自定义及fragment,tabLyaout实现_第1张图片
image.png
Android---侧滑效果自定义及fragment,tabLyaout实现_第2张图片
image.png

目录:

Android---侧滑效果自定义及fragment,tabLyaout实现_第3张图片
image.png

Android studio创建module时直接选择创建带侧滑栏的activity,在其上面修改自定义布局即可。

actity_main.xml




    

    //自定义侧滑栏更改此处,注释掉后面内容
    

    
        
        
        



draw_menu_layout.xml




    

    

        

            

            
        

        

            

            
        
    


MainActivity

listView = (ListView) findViewById(R.id.id_draw_menu_item_list_select);
        listView.setAdapter(new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, strings));
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView adapterView, View view, int i, long l) {
                Toast.makeText(MainActivity.this, strings[i], Toast.LENGTH_SHORT).show();
            }
        });

侧滑效果已经完成,之后为fragment侧滑翻页功能:
content_main.xml





    

    

MainActivity:

tabLayout = (TabLayout) findViewById(R.id.tab);
        viewPager = (ViewPager) findViewById(R.id.viewpager);
        //这种方式没有侧滑换页功能
        for(int i = 0; i < 5; i++){
            tabList.add("hello" + i);
        }
        for(int i = 0; i < 5; i++){
            tabLayout.addTab(tabLayout.newTab().setText(tabList.get(i)));
        }
        myFragmentAdapter adapter = new myFragmentAdapter(getSupportFragmentManager(),MainActivity.this);
        viewPager.setAdapter(adapter);
        //setupWithViewPager()方法底部会调用FragmentPagerAdapter中的getPageTitle()方法
        tabLayout.setupWithViewPager(viewPager);

myFragmentAdapter:

package megvii.tab;

import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

/**
 * Created by wangzhiqiang on 2017/6/22.
 */
import java.util.List;
//control + o
public class myFragmentAdapter extends FragmentPagerAdapter {

    private Context context;
    private String[] titles = new String[]{"消息", "联系人", "动态", "3", "f"};

    public myFragmentAdapter(FragmentManager fm, Context context) {
        super(fm);
        this.context = context;
    }

    @Override
    public Fragment getItem(int position) {
        return CommonFragment.newInstance(titles[position]);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return titles[position];
    }

    @Override
    public int getCount() {
        return titles.length;
    }
}

CommonFragment


public class CommonFragment extends Fragment {

    public static final String ARGS_PAGE = "args_page";
    private String contents;

    public static CommonFragment newInstance(String string) {
        Bundle args = new Bundle();
        args.putString(ARGS_PAGE, string);
        CommonFragment fragment = new CommonFragment();
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        contents = getArguments().getString(ARGS_PAGE);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        TextView textView = new TextView(getActivity());
        textView.setGravity(Gravity.CENTER);
        textView.setTextSize(17);
        textView.setText(contents + " Fragment");
        return textView;
    }
}

可以在AppBarLayout嵌套TabLayout,实现视图滚动时Toolbar隐藏的功能或AppBarLayout嵌套CollapsingToolbarLayout:
具体参考http://blog.csdn.net/xyz_lmn/article/details/48055919

你可能感兴趣的:(Android---侧滑效果自定义及fragment,tabLyaout实现)