项目地址:https://github.com/hoang8f/android-segmented-control compile 'info.hoang8f:android-segmented:1.0.6' 布局<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:segmentedgroup="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <info.hoang8f.android.segmented.SegmentedGroup android:id="@+id/sg_topbar" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" android:orientation="horizontal" android:weightSum="100" segmentedgroup:sc_border_width="1dp" segmentedgroup:sc_corner_radius="5dp"> <RadioButton android:id="@+id/one_fra" style="@style/RadioButton" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_margin="0dp" android:layout_weight="25" android:text="one" android:textAllCaps="false" /> <RadioButton android:id="@+id/two_fra" style="@style/RadioButton" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_weight="25" android:text="two" android:textAllCaps="false" /> <RadioButton android:id="@+id/three_fra" style="@style/RadioButton" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_weight="25" android:text="three" android:textAllCaps="false" /> </info.hoang8f.android.segmented.SegmentedGroup> <View android:id="@+id/toolbar_shadow" android:layout_width="match_parent" android:layout_height="1dp" android:background="#88888888" /> <android.support.v4.view.ViewPager android:id="@+id/viewPager_content" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
MainActivitypackage example.com.segmentedgroup; import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.widget.RadioButton; import android.widget.RadioGroup; import info.hoang8f.android.segmented.SegmentedGroup; public class MainActivity extends FragmentActivity implements RadioGroup.OnCheckedChangeListener { private RadioButton one_fra; private RadioButton two_fra; private RadioButton three_fra; private ViewPager viewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.viewPager_content); viewPager.setAdapter(new ScreenSlidePagerAdapter(getSupportFragmentManager())); viewPager.addOnPageChangeListener(onPageChangeListener); //Make viewpager load one fragment every time. viewPager.setOffscreenPageLimit(2); SegmentedGroup sg_topbar = (SegmentedGroup) findViewById(R.id.sg_topbar); sg_topbar.setTintColor(Color.parseColor("#8BC34A")); sg_topbar.setOnCheckedChangeListener(this); one_fra = (RadioButton) findViewById(R.id.one_fra); one_fra.setChecked(true); two_fra = (RadioButton) findViewById(R.id.two_fra); three_fra = (RadioButton) findViewById(R.id.three_fra); } @Override public void onCheckedChanged(RadioGroup radioGroup, int checkedId) { switch (checkedId) { case R.id.one_fra: viewPager.setCurrentItem(0); break; case R.id.two_fra: viewPager.setCurrentItem(1); break; case R.id.three_fra: viewPager.setCurrentItem(2); break; } } private ViewPager.OnPageChangeListener onPageChangeListener = new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { switch (position) { default: one_fra.setChecked(true); break; case 1: two_fra.setChecked(true); break; case 2: three_fra.setChecked(true); break; } } }; private class ScreenSlidePagerAdapter extends FragmentPagerAdapter { public ScreenSlidePagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { Fragment fragment; switch (position) { default: fragment = new OneFragment(); break; case 1: fragment = new TwoFragment(); break; case 2: fragment = new ThreeFragment(); break; } return fragment; } @Override public int getCount() { return 3; } } }
Fragmentpublic class OneFragment extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment, container, false); TextView tv_content = (TextView) rootView.findViewById(R.id.tv_content); tv_content.setText("One"); return rootView; } }
RadioGroup实现类似ios的分段选择(UISegmentedControl)控件
最新推荐文章于 2019-01-09 15:58:00 发布