fragment滑动界面

时间:2022-09-08 00:00:05

1.代码页面

package com.example.fragment_list_copy;

import android.app.FragmentManager;
import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout; import com.example.fragment_list_copy.Fragment.OneFragment;
import com.example.fragment_list_copy.Fragment.ThreeFragment;
import com.example.fragment_list_copy.Fragment.TwoFragment; import java.util.ArrayList;
import java.util.List; public class MainActivity extends AppCompatActivity {
private ViewPager viewPager;
private LinearLayout linearLayout_points;
private List<Fragment> list_fragment = new ArrayList<>();
private View point; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
} private void init() {
viewPager = findViewById(R.id.viewPager);
linearLayout_points = findViewById(R.id.point_linearLayout);
list_fragment.add(new OneFragment()); /** 实例化Frament 并放入list_fragment*/
list_fragment.add(new TwoFragment());
list_fragment.add(new ThreeFragment());
viewPager.setAdapter(new MyAdapyer(getSupportFragmentManager())); for (int i = 0;i<list_fragment.size();i++){
point = new View(this);
point.setBackgroundResource(R.drawable.ic_launcher_background); /** 指定小圆点的选择器*/
point.setEnabled(false); /** 设置小圆点为白色*/
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(10,10);/** 设置小圆点大小*/
layoutParams.leftMargin = 10; /** 设置小圆点左边距*/
linearLayout_points.addView(point,layoutParams); /** 将小圆点添加到布局*/
}
linearLayout_points.getChildAt(0).setEnabled(true); /** 得到第一个小圆点并设置为红色*/
/**
* 为viewPager 设置监听
*/
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { }
@Override
public void onPageSelected(int position) {
/**
* 当显示的页面变更的时候 循环遍历
* 将与选中页面对应的小圆点变为红色,其他变为白色
*/
for (int i = 0;i<list_fragment.size();i++){
if (i == position){
linearLayout_points.getChildAt(i).setEnabled(true);
}else {
linearLayout_points.getChildAt(i).setEnabled(false);
}
}
} @Override
public void onPageScrollStateChanged(int state) { }
});
}
/**
* 重写 FragmentPagerAdapter
* MyAdapter 、getCount 、getItem
*
*/ private class MyAdapyer extends FragmentPagerAdapter {
public MyAdapyer(android.support.v4.app.FragmentManager fragmentManager) {
super(fragmentManager);
} @Override
public int getCount() {
return list_fragment.size();
} @Override
public Fragment getItem(int position) {
return list_fragment.get(position);
}
}
}

2.主布局页面

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" tools:context="com.example.fragment_list_copy.MainActivity">
<include layout=""
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"> </android.support.v4.view.ViewPager>
<LinearLayout
android:id="@+id/point_linearLayout"
android:orientation="horizontal"
android:gravity="center"
android:layout_marginBottom="40dp"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="40dp"> </LinearLayout> </RelativeLayout>

3.创建三个小页面

1.package com.example.fragment_list_copy.Fragment;

import android.os.Bundle;
import android.os.TokenWatcher;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast; import com.example.fragment_list_copy.R; /**
* A simple {@link Fragment} subclass.
*/
public class OneFragment extends Fragment {
public OneFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_one,container, false); } @Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(getActivity(), "=========", Toast.LENGTH_SHORT).show();
}
}
2.
package com.example.fragment_list_copy.Fragment;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup; import com.example.fragment_list_copy.R; /**
* A simple {@link Fragment} subclass.
*/
public class TwoFragment extends Fragment { public TwoFragment() {
// Required empty public constructor
} @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_two,container, false); } }
3.
package com.example.fragment_list_copy.Fragment;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup; import com.example.fragment_list_copy.R; /**
* A simple {@link Fragment} subclass.
*/
public class ThreeFragment extends Fragment { public ThreeFragment() {
// Required empty public constructor
} @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_three,container, false);
} }

4.小页面的布局代码

第一个小页面中有五个button

1<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.fragment_list_copy.Fragment.OneFragment"
android:background="#00aaaa"
> <!-- TODO: Update blank fragment layout -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout> <LinearLayout
android:layout_marginBottom="10dp"
android:gravity="bottom|center"
android:layout_width="match_parent"
android:layout_height="match_parent"> <Button
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="环境指标"
android:id="@+id/bt_hjzb"
/>
<Button
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="历史数据"
android:id="@+id/bt_lssj"/>
<Button
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="手动控制"
android:id="@+id/bt_sdkz"
/>
<Button android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="系统设置"
android:id="@+id/bt_xtsz"
/> <Button
android:id="@+id/bt_cy"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="创意设计"
/>
</LinearLayout> </FrameLayout>
2.
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.fragment_list_copy.Fragment.TwoFragment"
android:background="#ba55"
> <!-- TODO: Update blank fragment layout -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_blank_fragment"/> </FrameLayout>
3.
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.fragment_list_copy.Fragment.ThreeFragment"
android:background="#ccc3"
> <!-- TODO: Update blank fragment layout -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_blank_fragment"/> </FrameLayout>

fragment滑动界面的更多相关文章

  1. viewpager fragment 滑动界面

    先新建几个fragment,包括java和xml 然后在主界面的布局文件中: <android.support.v4.view.ViewPager android:id="@+id/m ...

  2. &lpar;转&rpar;android Fragments详解三&colon;实现Fragment的界面

    为fragment添加用户界面 fragment一般作为activity的用户界面的一部分,把它自己的layout嵌入到activity的layout中.    一个 要为fragment提供layo ...

  3. Android Fragment详解&lpar;三&rpar;: 实现Fragment的界面

    为fragment添加用户界面: Fragment一般作为activity的用户界面的一部分,把它自己的layout嵌入到activity的layout中. 一个 要为fragment提供layout ...

  4. android关于实现滑动界面

    首先要说的是,滑动界面,我们需要一个以上的view切换,实际上可以使用ArrayList<View> pageViews要保存view信息,然后切换 LayoutInflater infl ...

  5. 创建多个Fragment可滑动界面

    创建新项目,选择Tabbed Activity 默认就有2个Fragment,这里我们删除相关代码. 在切换时 FragmentPagerAdapter onDestroyView onCreateV ...

  6. FragmentCustomAnimation实现Fragment的界面切换

    1.知识点:FragmentCustomAnimation 2.演示样例:来自于官网演示样例的简化,这样更方便于学习该知识点. 本演示样例的源代码下载地址为:http://download.csdn. ...

  7. &lbrack;Android&rsqb; 使用Include布局&plus;Fragment滑动切换屏幕

        前面的文章已经讲述了"随手拍"项目图像处理的技术部分,该篇文章主要是主界面的布局及屏幕滑动切换,并结合鸿洋大神的视频和郭神的第一行代码(强推两人Android博客),完毕了 ...

  8. Fragment滑动切换简单案例

    Fragment的产生与介绍Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视.针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布局以适应平板神 ...

  9. SlidingMenu开源项目滑动界面的实现总结

    先上图 须要准备的是先得在GitHub上下载ActionBarSherlock-master.zip,和SlidingMenu-master.zip这两个开源文件,然后解压这两个包,SlidingMe ...

随机推荐

  1. RequireJS使用注意地方

    使用RequireJS做异步模块加载,有几点值得注意的地方: 1.模块定义两种写法 1. 存在依赖的函数式定义 如果模块存在依赖:则第一个参数是依赖的名称数组:第二个参数是函数,在模块的所有依赖加载完 ...

  2. Java基础知识学习(一)

    部门接了新项目,后台使用Java框架play framework,前端是html,前后台通过rest交互,能够支持多端的互联网架构. 因为之前没有Java基础,前端使用的也很少,决定深入学习一下Jav ...

  3. 怎么将字节流转换成汉字?(硬件printf的汉字怎么解析?)

    System. Text .Encoding .Default    .GetString(ReceBuff)

  4. 关于Oracle过程,函数的经典例子及解析

    一,Oracle中的过程,函数 对于oracle中的过程和函数,个人觉得可以化为一类,因为它们在写法上并没有什么的不同.公式无非就是 create or replace Package_name(pa ...

  5. hadoop 入门实例【转】

    原文链接:http://www.cnblogs.com/xia520pi/archive/2012/06/04/2534533.html 1.数据去重  "数据去重"主要是为了掌握 ...

  6. Qt 无边框窗体改变大小 完美实现

    近期,做项目用到无边框窗体,令人蛋疼的是无边框窗体大小的改变要像右边框那样,上下左右四周,而且要流畅. 网上也找了些代码,发现居然还要连接到windows事件,这显然不合常理,后来自己新建了demo, ...

  7. pandas&period;read&lowbar;csv&lpar;&rpar; 报错 OSError&colon; Initializing from file failed,报错原因分析和解决方法

    今天调用pandas读取csv文件时,突然报错“ OSError: Initializing from file failed ”,我是有点奇怪的,以前用的好好的,read_csv(path)方法不是 ...

  8. HDU 3478 Catch &lpar;连通性&amp&semi;&amp&semi;二分图判断&rpar;

    链接 [https://vjudge.net/contest/281085#problem/C] 题意 一个n个点,m条边的图,开始的点是s 每次必须移动到相邻的位置,问你是否存在某个时刻所有点都可能 ...

  9. django 浅谈CSRF(Cross-site request forgery)跨站请求伪造

    浅谈CSRF(Cross-site request forgery)跨站请求伪造(写的非常好) 本文目录 一 CSRF是什么 二 CSRF攻击原理 三 CSRF攻击防范 回到目录 一 CSRF是什么 ...

  10. thinkphp3&period;2中开启静态缓存后对404页面的处理方法

    静态缓存很实用但是有时有些不需要静态缓存,如404页面,第一次访问返回404页面并缓存,第二次换回的状态就是200,属于正常访问,虽然人眼可以看出是404页面,但是搜索引擎不会的,而是把这个页面当成正 ...