`

RadioButton+ViewPager+FragmentPagerAdapter快速搭建页面结构

阅读更多
一切为了快速开发

开发类似界面


import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.RadioButton;

import com.yirui.youbao.App;
import com.yirui.youbao.fragment.ParkingPayedListFragment;
import com.yirui.youbao.fragment.ParkingUnpayListFragment;

/**
 * 
 * @author pythoner
 *
 */
public class ParkingPayActivity extends BaseActivity implements View.OnClickListener{

	private final int count = 2;//页数
	private int curPosition=0;//当前页
	private RadioButton[] rbs;
	private ViewPager viewPager;
	private FragmentPagerAdapter pagerAdapter;
	private Fragment[] fragments;
    
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_parking_pay);
		initActionBar("App付费");
		initViews();
	}
	
	private void initViews() {
		initIndicator();
		initViewPager();
	}

	private void initIndicator(){
		rbs = new RadioButton[count];
		rbs[0] = (RadioButton) findViewById(R.id.rb_0);
		rbs[1] = (RadioButton) findViewById(R.id.rb_1);

		for (int i = 0; i < rbs.length; i++) {
			rbs[i].setOnClickListener(new View.OnClickListener() {

				@Override
				public void onClick(View v) {
					// TODO Auto-generated method stub
					String tag = (String) v.getTag();
					curPosition=Integer.parseInt(tag);
					viewPager.setCurrentItem(curPosition);
				}
			});
		}
		
		rbs[curPosition].setChecked(true);
	}
	
	private void initViewPager(){
		fragments = new Fragment[count];
		fragments[0] = ParkingUnpayListFragment.newInstance();
		fragments[1] = ParkingPayedListFragment.newInstance();

		pagerAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
			@Override
			public int getCount() {
				return fragments.length;
			}

			@Override
			public Fragment getItem(int position) {
				return fragments[position];
			}

		};

		viewPager = (ViewPager) findViewById(R.id.viewPager);
		viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

			@Override
			public void onPageSelected(int position) {
				// TODO Auto-generated method stub
				rbs[position].setChecked(true);
				curPosition=position;
			}

			@Override
			public void onPageScrolled(int arg0, float arg1, int arg2) {
				// TODO Auto-generated method stub
			}

			@Override
			public void onPageScrollStateChanged(int arg0) {
				// TODO Auto-generated method stub

			}
		});

		viewPager.setAdapter(pagerAdapter);
		viewPager.setCurrentItem(curPosition);
	}
	
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
	}
	
}


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/bg_gray"
    android:orientation="vertical" >

    <include layout="@layout/actionbar_comm" />

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/white"
        android:padding="8dp" >

        <RadioGroup
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:orientation="horizontal" >

            <RadioButton
                android:id="@+id/rb_0"
                android:tag="0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/bg_blue_trans_with_frame"
                android:button="@null"
                android:paddingBottom="4dp"
                android:paddingLeft="8dp"
                android:paddingRight="8dp"
                android:paddingTop="4dp"
                android:text="未付费"
                android:textColor="@color/textcolor_blue_white_radio" />

            <RadioButton
                android:id="@+id/rb_1"
                android:tag="1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/bg_blue_trans_with_frame"
                android:button="@null"
                android:paddingBottom="4dp"
                android:paddingLeft="8dp"
                android:paddingRight="8dp"
                android:paddingTop="4dp"
                android:text="已付费"
                android:textColor="@color/textcolor_blue_white_radio" />
        </RadioGroup>
    </FrameLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:flipInterval="30"
        android:background="@android:color/white"
        android:layout_marginTop="16dp"
        android:persistentDrawingCache="animation" />

</LinearLayout>


背景:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_checked="true">
        <shape>
            <solid android:color="@color/primary" />
            <stroke android:width="1dp" android:color="@color/primary" />
            <corners android:topLeftRadius="dp" android:topRightRadius="0dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp"/>
        </shape>
   	</item>
    <item>
        <shape>
            <solid android:color="@android:color/transparent" />
            <stroke android:width="1dp" android:color="@color/primary" />
            <corners android:topLeftRadius="dp" android:topRightRadius="0dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp"/>
        </shape>
    </item>

</selector>


文字颜色:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:color="@android:color/white" />
    <item android:color="@color/primary" />
</selector>
  • 大小: 2 KB
分享到:
评论

相关推荐

    RadioButton+ViewPager+Fragment

    5. **同步RadioButton的状态**:当`ViewPager`页面切换时,确保对应的`RadioButton`被选中。这可以通过设置`ViewPager.OnPageChangeListener`,在`onPageSelected(int position)`方法中设置`RadioButton`的选中状态...

    RadioButton+ViewPager 底部栏

    在Android应用开发中,"RadioButton+ViewPager 底部栏"是一种常见的设计模式,用于实现底部导航功能。这种设计使得用户可以方便地在多个视图之间切换,而RadioButton通常被用作选择器,显示当前选中的页面。下面我们...

    RadioGroup+ViewPager制作的底部导航栏

    通常,`ViewPager`与适配器(如`FragmentPagerAdapter`或`FragmentStatePagerAdapter`)一起使用,可以加载并管理多个`Fragment`,每个`Fragment`代表`ViewPager`的一个页面。 下面我们将逐步介绍如何结合`...

    框架(ViewPager+RadioButton+Fragment)

    在Android应用开发中,"框架(ViewPager+RadioButton+Fragment)"是一种常见的布局设计模式,它提供了灵活、可扩展的用户界面。这个模式结合了ViewPager、RadioButton和Fragment三个关键组件,以实现滑动页面、导航...

    RadioButton和ViewPager实现页面滑动效果

    在Android开发中,RadioButton通常用于实现单选按钮功能,而ViewPager则是一个强大的组件,用于创建可以左右滑动的页面视图。将RadioButton与ViewPager结合,可以创建出一种类似TabLayout的效果,用户可以通过点击...

    安卓APP常用界面切换RadioButton+fragment

    在安卓应用开发中,"安卓APP常用界面切换RadioButton+fragment" 是一个常见的设计模式,用于实现多页面间的平滑切换,提升用户体验。RadioButton通常作为底部导航栏的选项,用户可以通过选择不同的RadioButton来切换...

    RadioGroup+Fragment+ViewPager导航,指示器动画效果

    在`ViewPager`的适配器(通常是一个`FragmentPagerAdapter`或`FragmentStatePagerAdapter`)中,我们需要为每个`Fragment`提供实例,并确保它们的顺序与`RadioGroup`中的RadioButton顺序一致。这样,当`RadioGroup`...

    fragment+Viewpager 嵌套

    2:fragment+viewpager 通过对滑动事件的监听、切换视图 3:在2的基础上,进行viewpager嵌套。 并获取不同的监听事件 4:在3的基础上,自定义listview 并获取相应的监听事件 (PS:更大层面上适合初学者学习和了解...

    Viewpager+Fragment+RadioButton

    要实现`ViewPager`与`RadioButton`结合的界面,首先需要创建一个`RadioGroup`,然后为每个`RadioButton`设置一个唯一ID,对应`ViewPager`的不同页面。接着,创建一个`FragmentPagerAdapter`,并在`instantiateItem()...

    fragement+viewpager+radiobutton深度理解androidstudio,用完请好评!

    在实现ViewPager和RadioButton时,可能需要使用FrameLayout作为基础布局,以便在不同的页面之间切换时,RadioButton能正确地显示和交互。 为了将这些组件整合到一个项目中,你需要在Android Studio中创建一个新的...

    fragment+viewpager的使用

    本篇文章将详细介绍如何在项目中结合`Fragment`和`ViewPager`,以及如何利用`RadioButton`来实现模块化的信息展示。 首先,`Fragment`是Android SDK提供的一种组件,它允许开发者在单个活动中包含多个可重用的UI...

    fragmnet+viewPager+RadioGroup底部导航栏

    6. **同步RadioGroup和ViewPager**:在切换ViewPager页面时,确保对应的RadioButton被选中。这可以通过在ViewPager的PageChangeListener中实现。 通过以上步骤,我们可以实现一个功能完整的底部导航栏。在实际开发...

    RadioGroup+ViewPager左右滑动

    在RadioGroup的onCheckedChangeListener中,根据选中的RadioButton id,调用ViewPager的`setCurrentItem()`方法来切换到相应的页面。 4. **设置PageTransformer**(可选):为了增加用户体验,可以为ViewPager添加...

    标题RadioButton内容viewpager,fragment,listView组合

    1.标题栏用RadioGroup,RadioButton来实现,下面的展示由viewpager和fragment组合实现,内容为listView。 2.可以点击radiobutton 改变选中状态,进行切换fragment。 3.由于用了viewpager,也可以左右滑动。 4.代码...

    Fragment+ViewPager标准导航

    最后,我们还可以添加一些额外的优化,比如使用`FragmentTransaction`进行动画过渡,或者在`RadioButton`与`Fragment`之间建立双向绑定,使得当前选中的`RadioButton`能够自动反映`ViewPager`中的当前页面。...

    Fragment+ViewPager两级嵌套

    实习公司在做一个装在手持...大体是页面底部是4个可切换的RadioButton,第一个RadioButton所对应的Fragment嵌套了一个ViewPager。本人大四实习生,安卓自学。所写东西难免生疏粗俗。旨在共同交流,共同学习,共同进步。

    Fragment+ViewPager实现底部导航栏

    为了使`RadioButton`的状态与`ViewPager`的页面同步,还需要在`ViewPager`的`OnPageChangeListener`中更新对应的`RadioButton`: ```java viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener()...

    自定义HorizontalScrollView模仿RadioGroup+Fragment+ViewPager的翻页与点击效果,效果完全一样.161124更新

    通过模仿这两者,我们可以创建一个自定义组件,实现类似ViewPager的滑动切换页面,同时保留RadioGroup的单选特性。 首先,我们需要了解自定义HorizontalScrollView的核心思路。在HorizontalScrollView的基础上,...

    自定义HorizontalScrollView模仿RadioGroup+Fragment+Viewpager的翻页与点击效果,效果完全一样

    在Android开发中,有时我们需要实现一个可滑动切换的页面组件,这通常涉及到HorizontalScrollView、RadioGroup、Fragment以及ViewPager等控件。标题提到的“自定义HorizontalScrollView模仿RadioGroup+Fragment+...

    RadioButton+Fragment导航

    在Android应用开发中,`RadioButton`和`Fragment`的结合使用是常见的导航方式之一,尤其适合于构建简单的选项卡式界面。本知识点将详细介绍如何利用`RadioButton`进行`Fragment`的切换,帮助开发者理解并掌握这种...

Global site tag (gtag.js) - Google Analytics