首页 > 其他分享 >android短视频开发,两个ViewPager联动效果

android短视频开发,两个ViewPager联动效果

时间:2023-09-22 14:11:42浏览次数:33  
标签:layout ViewPager 联动 position android mVp1 match mVp2

android短视频开发,两个ViewPager联动效果

activity_main.xml

 


<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
 
        <com.yundi.piano.ceshidemo.WrapContentHeightViewPager
            android:id="@+id/body_vp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
 
        <TextView
            android:layout_width="match_parent"
            android:text="hhh"
            android:padding="10dp"
            android:layout_height="wrap_content" />
 
        <com.yundi.piano.ceshidemo.WrapContentHeightViewPager
            android:id="@+id/header_vp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
</android.support.v4.widget.NestedScrollView>

MainActivity.java

 


package com.yundi.piano.ceshidemo;
 
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
 
import java.util.ArrayList;
import java.util.List;
 
public class MainActivity extends BaseActivity {
 
    private WrapContentHeightViewPager mVp1,mVp2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mVp1=findViewById(R.id.body_vp);
        mVp2=findViewById(R.id.header_vp);
        List<String> list = new ArrayList<>();
        for (int i = 0; i < 3; i++) {
            list.add("第" + i + "个View");
        }
        mVp1.setAdapter(new MyPagerAdapter1(MainActivity.this, list));
 
        List<String> list2 = new ArrayList<>();
        for (int i = 0; i < 3; i++) {
            list2.add("第" + i + "个Views");
        }
        mVp2.setAdapter(new MyPagerAdapter1(MainActivity.this, list2));
 
        mVp1.addOnPageChangeListener(new BaseLinkPageChangeListener(mVp1, mVp2) {
            @Override
            public void onPageSelected(int position) {
                super.onPageSelected(position);
//                pageScrollToTop();
                mVp1.resetHeight(position);//设置viewpager高度
                mVp2.resetHeight(position);
            }
        });
        mVp2.addOnPageChangeListener(new BaseLinkPageChangeListener(mVp2, mVp1) {
            @Override
            public void onPageSelected(int position) {
                super.onPageSelected(position);
//                tabLayout.onPageSelected(position);
            }
 
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                super.onPageScrolled(position, positionOffset, positionOffsetPixels);
//                tabLayout.onPageScrolled(position, positionOffset, positionOffsetPixels);
                mVp1.resetHeight(position);
                mVp2.resetHeight(position);
            }
        });
 
    }
}
 

 

以上就是android短视频开发,两个ViewPager联动效果, 更多内容欢迎关注之后的文章 

 

标签:layout,ViewPager,联动,position,android,mVp1,match,mVp2
From: https://www.cnblogs.com/yunbaomengnan/p/17722194.html

相关文章

  • 【Android面试】2023最新大厂面试专题一:关于HashMap那些事儿
    1、 请说一说HashMap,SparseArrary原理,SparseArrary相比HashMap的优点、ConcurrentHashMap如何实现线程安全?这道题想考察什么?1、HashMap,SparseArrary基础原理?2、SparseArrary相比HashMap的优点是什么?3、ConcurrentHashMap如何实现线程安全?考察的知识点HashMap,SparseArrary、Concurre......
  • 使用亚马逊云服务器在 G4 实例上运行 Android 应用程序
    随着Android应用程序和游戏变得越来越丰富,其中有些甚至比PC上的软件更易于使用和娱乐,因此许多人希望能够在云上运行Android游戏或应用程序,而在EC2实例上运行Android的解决方案可以让开发人员更轻松地测试和运行Android应用程序。在这篇博客文章中,我们将展示如何使用N......
  • 从Android事件分发机制看滑动冲突解决方案
    事件分发机制从ViewGroup的dispatchTouchEvent入手publicbooleandispatchTouchEvent(MotionEventev){...finalbooleanintercepted;if(actionMasked==MotionEvent.ACTION_DOWN||mFirstTouchTarget!=null){fi......
  • Android Framework原理解决大龄程序员的催命符
    有人说对于咱们程序员而言:每过一年,都像是在催命。35岁的坎是每个程序员都逃不过的宿命,每过一年离这个坎就又近一步。所以大家都很焦虑,而这份焦虑恰恰又被各种自媒体,公众号,博客等等平台所利用,每年都有人在说互联网又寒冬了,某某公司又大规模裁员了,Android开发不行了这类的负面的消息......
  • Android端如何实现拉取RTSP/RTMP流并回调YUV/RGB数据然后注入轻量级RTSP服务?
    技术背景我们在对接开发Android平台音视频模块的时候,遇到过这样的问题,厂商希望拉取到海康、大华等摄像机的RTSP流,然后解码后的YUV或RGB数据回给他们,他们做视频分析或处理后,再投递给轻量级RTSP服务模块或RTMP推送模块,实现处理后的数据,二次转发,本文以拉取RTSP流,解析后再注入轻量级RTS......
  • Fragment初学7——Fragment在Android开发中的应用1
    Fragment的常用功能通过getFragmentManager()方法,可以得到FragmentManager对象,主要完成下面的功能(1).得到已经存在Fragment对象如果该fragment在布局文件中指定了id,通过findFragmentById()得到对象,或者指定了tag可以通过findFragmentByTag()得到对象Fragment fragment = getFra......
  • Fragment初学8——Fragment在Android开发中的应用2
    Fragment都是依附于Activity的,通信方式大致也分为如下几种:如果Activity中包含自己管理的Fragment的引用,可以通过直接引用访问所有的Fragment的public方法 如果Activity中未保存任何Fragment的引用,那么可以通过getFragmentManager.findFragmentByTag()或者findFragmentById()获得......
  • Android 妙用TextView实现左边文字,右边图片
    有时候,需要文字在左边,右边有个箭头,我个人之前会有两种做法:使用线性布局来实现或者使用约束布局,一个左对齐,一个右对齐这几天突然想到是否可以使用TextView的设置图标的方式实现,研究发现确实可以实现我的需求,也是记录下文字和图标左右显示效果:代码:<TextViewandroid:id="@+id/......
  • Android开发中Button背景颜色不能修改问题及解决方法
    在Android中,Button是一种按钮组件,用户能够在该组件上点击,并引发相应的事件处理函数。在进行Android开发的时候,都需要使用到按钮,但是对于初学者来说,刚开始的按钮都是默认的主题颜色,不管怎么修改都变不了颜色,在此记录一下踩过的坑。问题:使用AndroidStudio进行android开发时,不管是......
  • 简历被筛、面试被拒?Android求职者们如何给自己争取面试机会?
    前言相信各位小伙伴在求职过程中,都会遇到简历投递之后已读不回、面试邀请迟迟没有音讯以及初试被刷的情况。一般来说,大多数小伙伴就会直接选择放弃这家公司了,但是!先别急着换下一家投递呀!求职面试是彼此双向选择的一个过程,不要觉得有心理负担,也不要觉得不好意思,如果是真的很需要一个......