Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将另一个FragmentActivity添加到MainActivity中?_Java_Android - Fatal编程技术网

Java 如何将另一个FragmentActivity添加到MainActivity中?

Java 如何将另一个FragmentActivity添加到MainActivity中?,java,android,Java,Android,我得到了我的main活动classextensed作为AppCompatActivity,但我想添加一个新活动,如下所示。我试图使用intent将其添加到main活动中。但是,当我打开应用程序时,当我触发该功能时,它会崩溃。以下是两项活动的代码 MainActivity.java package com.michael.jared.navigationdrawerloginsqlite; import android.app.FragmentManager; import android.co

我得到了我的
main活动
classextensed作为
AppCompatActivity
,但我想添加一个新活动,如下所示。我试图使用intent将其添加到main活动中。但是,当我打开应用程序时,当我触发该功能时,它会崩溃。以下是两项活动的代码

MainActivity.java

package com.michael.jared.navigationdrawerloginsqlite;

import android.app.FragmentManager;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.michael.jared.navigationdrawerloginsqlite.database.DatabaseManagerUser;
import com.michael.jared.navigationdrawerloginsqlite.entity.User;

public class MainActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {

private DatabaseManagerUser databaseManagerUser;
private User itemUsuario;
private String ident;
public ViewPagerActivity vpa;

TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //se agrego codigo del 39 al 68
    Bundle b = getIntent().getExtras();

    ident = b.getString("IDENT");

    databaseManagerUser= new DatabaseManagerUser(getApplicationContext());
    itemUsuario = databaseManagerUser.getUsuario(ident); // encuentra al usuario registrado en la bbdd

    View header = ((NavigationView)findViewById(R.id.nav_view)).getHeaderView(0);

    ((TextView) header.findViewById(R.id.tv_nombre_usuario_menu)).setText(itemUsuario.getNombre());
    ((TextView) header.findViewById(R.id.tv_correo_menu)).setText(itemUsuario.getCorreo());

    Bitmap bitmapsinfoto = BitmapFactory.decodeResource(getResources(),R.drawable.imagen);
    RoundedBitmapDrawable roundedBitmapDrawablesinfoto = RoundedBitmapDrawableFactory.create(getResources(), bitmapsinfoto);
    roundedBitmapDrawablesinfoto.setCircular(true);

    ((ImageView) header.findViewById(R.id.imageView)).setImageDrawable(roundedBitmapDrawablesinfoto);

    if(itemUsuario.getBytes()!=null){
        byte[] foodImage = itemUsuario.getBytes();
        Bitmap bitmap = BitmapFactory.decodeByteArray(foodImage, 0, foodImage.length);

        ((ImageView) header.findViewById(R.id.imageView)).setImageBitmap(bitmap);

        Bitmap bitmap2 = ((BitmapDrawable)((ImageView) header.findViewById(R.id.imageView)).getDrawable()).getBitmap();
        RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(getResources(), bitmap2);
        roundedBitmapDrawable.setCircular(true);

        ((ImageView) header.findViewById(R.id.imageView)).setImageDrawable(roundedBitmapDrawable);
    }


    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
}



@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
}



@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();
    FragmentManager fragmentManager = getFragmentManager();

    if (id == R.id.nav_first_layout) {
        fragmentManager.beginTransaction()
                .replace(R.id.content_frame
                        , new FirstFragment())
                .commit();
    } else if (id == R.id.nav_second_layout) {
        fragmentManager.beginTransaction()
                .replace(R.id.content_frame
                        , new SecondFragment())
                .commit();

    } else if (id == R.id.nav_third_layout) {
        fragmentManager.beginTransaction()
                .replace(R.id.content_frame
                        , new ThirdFragment())
                .commit();

    } else if (id == R.id.nav_fourth_layout) {
        fragmentManager.beginTransaction()
                .replace(R.id.content_frame
                        , new FourthFragment())
                .commit();

    } else if (id == R.id.nav_share) {

        startActivity(new Intent(this, ViewPagerActivity.class));

    } else if (id == R.id.nav_send) {

    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
  }
}
package com.michael.jared.navigationdrawerloginsqlite;

import android.annotation.SuppressLint;
import android.os.Build;
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.util.SparseArrayCompat;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.AbsListView;
import android.widget.TextView;



@SuppressLint("NewApi")
public class ViewPagerActivity extends FragmentActivity implements 
ScrollTabHolder, ViewPager.OnPageChangeListener {

public static final boolean NEEDS_PROXY = Integer.valueOf(Build.VERSION.SDK_INT).intValue() < 11;

private View mHeader;

private PagerSlidingTabStrip mPagerSlidingTabStrip;
private ViewPager mViewPager;
private PagerAdapter mPagerAdapter;

private int mMinHeaderHeight;
private int mHeaderHeight;
private int mMinHeaderTranslation;

private TextView info;
private int mLastY;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mMinHeaderHeight = getResources().getDimensionPixelSize(R.dimen.min_header_height);
    mHeaderHeight = getResources().getDimensionPixelSize(R.dimen.header_height);
    mMinHeaderTranslation = -mMinHeaderHeight;

    setContentView(R.layout.activity_main);

    mHeader = findViewById(R.id.header);
    info = (TextView) findViewById(R.id.info);

    mPagerSlidingTabStrip = (PagerSlidingTabStrip) findViewById(R.id.tabs);
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setOffscreenPageLimit(4);

    mPagerAdapter = new PagerAdapter(getSupportFragmentManager());
    mPagerAdapter.setTabHolderScrollingContent(this);

    mViewPager.setAdapter(mPagerAdapter);

    mPagerSlidingTabStrip.setViewPager(mViewPager);
    mPagerSlidingTabStrip.setOnPageChangeListener(this);
    mLastY=0;
}

@Override
public void onPageScrollStateChanged(int arg0) {
    // nothing
}

@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    if (positionOffsetPixels > 0) {
        int currentItem = mViewPager.getCurrentItem();

        SparseArrayCompat<ScrollTabHolder> scrollTabHolders = mPagerAdapter.getScrollTabHolders();
        ScrollTabHolder currentHolder;

        if (position < currentItem) {
            currentHolder = scrollTabHolders.valueAt(position);
        } else {
            currentHolder = scrollTabHolders.valueAt(position + 1);
        }

        if (NEEDS_PROXY) {
            // TODO is not good
            currentHolder.adjustScroll(mHeader.getHeight() - mLastY);
            mHeader.postInvalidate();
        } else {
            currentHolder.adjustScroll((int) (mHeader.getHeight() + mHeader.getTranslationY()));
        }
    }
}

@Override
public void onPageSelected(int position) {
    SparseArrayCompat<ScrollTabHolder> scrollTabHolders = mPagerAdapter.getScrollTabHolders();
    ScrollTabHolder currentHolder = scrollTabHolders.valueAt(position);
    if(NEEDS_PROXY){
        //TODO is not good
        currentHolder.adjustScroll(mHeader.getHeight()-mLastY);
        mHeader.postInvalidate();
    }else{
        currentHolder.adjustScroll((int) (mHeader.getHeight() +mHeader.getTranslationY()));
    }
}

@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount, int pagePosition) {
    if (mViewPager.getCurrentItem() == pagePosition) {
        int scrollY = getScrollY(view);
        if(NEEDS_PROXY){
            //TODO is not good
            mLastY=-Math.max(-scrollY, mMinHeaderTranslation);
            info.setText(String.valueOf(scrollY));
            mHeader.scrollTo(0, mLastY);
            mHeader.postInvalidate();
        }else{
            mHeader.setTranslationY(Math.max(-scrollY, mMinHeaderTranslation));
        }
    }
}

@Override
public void adjustScroll(int scrollHeight) {
    // nothing
}

public int getScrollY(AbsListView view) {
    View c = view.getChildAt(0);
    if (c == null) {
        return 0;
    }

    int firstVisiblePosition = view.getFirstVisiblePosition();
    int top = c.getTop();

    int headerHeight = 0;
    if (firstVisiblePosition >= 1) {
        headerHeight = mHeaderHeight;
    }

    return -top + firstVisiblePosition * c.getHeight() + headerHeight;
}

public static float clamp(float value, float max, float min) {
    return Math.max(Math.min(value, min), max);
}

public class PagerAdapter extends FragmentPagerAdapter {

    private SparseArrayCompat<ScrollTabHolder> mScrollTabHolders;
    private final String[] TITLES = { "Page 1", "Page 2", "Page 3", "Page 4"};
    private ScrollTabHolder mListener;

    public PagerAdapter(FragmentManager fm) {
        super(fm);
        mScrollTabHolders = new SparseArrayCompat<ScrollTabHolder>();
    }

    public void setTabHolderScrollingContent(ScrollTabHolder listener) {
        mListener = listener;
    }

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

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

    @Override
    public Fragment getItem(int position) {
        ScrollTabHolderFragment fragment = (ScrollTabHolderFragment) SampleListFragment.newInstance(position);

        mScrollTabHolders.put(position, fragment);
        if (mListener != null) {
            fragment.setScrollTabHolder(mListener);
        }
     return fragment;
    }

    public SparseArrayCompat<ScrollTabHolder> getScrollTabHolders() {
        return mScrollTabHolders;
    }

   }
 }
viewPageActivity.java

package com.michael.jared.navigationdrawerloginsqlite;

import android.app.FragmentManager;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.michael.jared.navigationdrawerloginsqlite.database.DatabaseManagerUser;
import com.michael.jared.navigationdrawerloginsqlite.entity.User;

public class MainActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {

private DatabaseManagerUser databaseManagerUser;
private User itemUsuario;
private String ident;
public ViewPagerActivity vpa;

TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //se agrego codigo del 39 al 68
    Bundle b = getIntent().getExtras();

    ident = b.getString("IDENT");

    databaseManagerUser= new DatabaseManagerUser(getApplicationContext());
    itemUsuario = databaseManagerUser.getUsuario(ident); // encuentra al usuario registrado en la bbdd

    View header = ((NavigationView)findViewById(R.id.nav_view)).getHeaderView(0);

    ((TextView) header.findViewById(R.id.tv_nombre_usuario_menu)).setText(itemUsuario.getNombre());
    ((TextView) header.findViewById(R.id.tv_correo_menu)).setText(itemUsuario.getCorreo());

    Bitmap bitmapsinfoto = BitmapFactory.decodeResource(getResources(),R.drawable.imagen);
    RoundedBitmapDrawable roundedBitmapDrawablesinfoto = RoundedBitmapDrawableFactory.create(getResources(), bitmapsinfoto);
    roundedBitmapDrawablesinfoto.setCircular(true);

    ((ImageView) header.findViewById(R.id.imageView)).setImageDrawable(roundedBitmapDrawablesinfoto);

    if(itemUsuario.getBytes()!=null){
        byte[] foodImage = itemUsuario.getBytes();
        Bitmap bitmap = BitmapFactory.decodeByteArray(foodImage, 0, foodImage.length);

        ((ImageView) header.findViewById(R.id.imageView)).setImageBitmap(bitmap);

        Bitmap bitmap2 = ((BitmapDrawable)((ImageView) header.findViewById(R.id.imageView)).getDrawable()).getBitmap();
        RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(getResources(), bitmap2);
        roundedBitmapDrawable.setCircular(true);

        ((ImageView) header.findViewById(R.id.imageView)).setImageDrawable(roundedBitmapDrawable);
    }


    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
}



@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
}



@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();
    FragmentManager fragmentManager = getFragmentManager();

    if (id == R.id.nav_first_layout) {
        fragmentManager.beginTransaction()
                .replace(R.id.content_frame
                        , new FirstFragment())
                .commit();
    } else if (id == R.id.nav_second_layout) {
        fragmentManager.beginTransaction()
                .replace(R.id.content_frame
                        , new SecondFragment())
                .commit();

    } else if (id == R.id.nav_third_layout) {
        fragmentManager.beginTransaction()
                .replace(R.id.content_frame
                        , new ThirdFragment())
                .commit();

    } else if (id == R.id.nav_fourth_layout) {
        fragmentManager.beginTransaction()
                .replace(R.id.content_frame
                        , new FourthFragment())
                .commit();

    } else if (id == R.id.nav_share) {

        startActivity(new Intent(this, ViewPagerActivity.class));

    } else if (id == R.id.nav_send) {

    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
  }
}
package com.michael.jared.navigationdrawerloginsqlite;

import android.annotation.SuppressLint;
import android.os.Build;
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.util.SparseArrayCompat;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.AbsListView;
import android.widget.TextView;



@SuppressLint("NewApi")
public class ViewPagerActivity extends FragmentActivity implements 
ScrollTabHolder, ViewPager.OnPageChangeListener {

public static final boolean NEEDS_PROXY = Integer.valueOf(Build.VERSION.SDK_INT).intValue() < 11;

private View mHeader;

private PagerSlidingTabStrip mPagerSlidingTabStrip;
private ViewPager mViewPager;
private PagerAdapter mPagerAdapter;

private int mMinHeaderHeight;
private int mHeaderHeight;
private int mMinHeaderTranslation;

private TextView info;
private int mLastY;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mMinHeaderHeight = getResources().getDimensionPixelSize(R.dimen.min_header_height);
    mHeaderHeight = getResources().getDimensionPixelSize(R.dimen.header_height);
    mMinHeaderTranslation = -mMinHeaderHeight;

    setContentView(R.layout.activity_main);

    mHeader = findViewById(R.id.header);
    info = (TextView) findViewById(R.id.info);

    mPagerSlidingTabStrip = (PagerSlidingTabStrip) findViewById(R.id.tabs);
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setOffscreenPageLimit(4);

    mPagerAdapter = new PagerAdapter(getSupportFragmentManager());
    mPagerAdapter.setTabHolderScrollingContent(this);

    mViewPager.setAdapter(mPagerAdapter);

    mPagerSlidingTabStrip.setViewPager(mViewPager);
    mPagerSlidingTabStrip.setOnPageChangeListener(this);
    mLastY=0;
}

@Override
public void onPageScrollStateChanged(int arg0) {
    // nothing
}

@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    if (positionOffsetPixels > 0) {
        int currentItem = mViewPager.getCurrentItem();

        SparseArrayCompat<ScrollTabHolder> scrollTabHolders = mPagerAdapter.getScrollTabHolders();
        ScrollTabHolder currentHolder;

        if (position < currentItem) {
            currentHolder = scrollTabHolders.valueAt(position);
        } else {
            currentHolder = scrollTabHolders.valueAt(position + 1);
        }

        if (NEEDS_PROXY) {
            // TODO is not good
            currentHolder.adjustScroll(mHeader.getHeight() - mLastY);
            mHeader.postInvalidate();
        } else {
            currentHolder.adjustScroll((int) (mHeader.getHeight() + mHeader.getTranslationY()));
        }
    }
}

@Override
public void onPageSelected(int position) {
    SparseArrayCompat<ScrollTabHolder> scrollTabHolders = mPagerAdapter.getScrollTabHolders();
    ScrollTabHolder currentHolder = scrollTabHolders.valueAt(position);
    if(NEEDS_PROXY){
        //TODO is not good
        currentHolder.adjustScroll(mHeader.getHeight()-mLastY);
        mHeader.postInvalidate();
    }else{
        currentHolder.adjustScroll((int) (mHeader.getHeight() +mHeader.getTranslationY()));
    }
}

@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount, int pagePosition) {
    if (mViewPager.getCurrentItem() == pagePosition) {
        int scrollY = getScrollY(view);
        if(NEEDS_PROXY){
            //TODO is not good
            mLastY=-Math.max(-scrollY, mMinHeaderTranslation);
            info.setText(String.valueOf(scrollY));
            mHeader.scrollTo(0, mLastY);
            mHeader.postInvalidate();
        }else{
            mHeader.setTranslationY(Math.max(-scrollY, mMinHeaderTranslation));
        }
    }
}

@Override
public void adjustScroll(int scrollHeight) {
    // nothing
}

public int getScrollY(AbsListView view) {
    View c = view.getChildAt(0);
    if (c == null) {
        return 0;
    }

    int firstVisiblePosition = view.getFirstVisiblePosition();
    int top = c.getTop();

    int headerHeight = 0;
    if (firstVisiblePosition >= 1) {
        headerHeight = mHeaderHeight;
    }

    return -top + firstVisiblePosition * c.getHeight() + headerHeight;
}

public static float clamp(float value, float max, float min) {
    return Math.max(Math.min(value, min), max);
}

public class PagerAdapter extends FragmentPagerAdapter {

    private SparseArrayCompat<ScrollTabHolder> mScrollTabHolders;
    private final String[] TITLES = { "Page 1", "Page 2", "Page 3", "Page 4"};
    private ScrollTabHolder mListener;

    public PagerAdapter(FragmentManager fm) {
        super(fm);
        mScrollTabHolders = new SparseArrayCompat<ScrollTabHolder>();
    }

    public void setTabHolderScrollingContent(ScrollTabHolder listener) {
        mListener = listener;
    }

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

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

    @Override
    public Fragment getItem(int position) {
        ScrollTabHolderFragment fragment = (ScrollTabHolderFragment) SampleListFragment.newInstance(position);

        mScrollTabHolders.put(position, fragment);
        if (mListener != null) {
            fragment.setScrollTabHolder(mListener);
        }
     return fragment;
    }

    public SparseArrayCompat<ScrollTabHolder> getScrollTabHolders() {
        return mScrollTabHolders;
    }

   }
 }
package com.michael.jared.navigationdrawerloginsqlite;
导入android.annotation.SuppressLint;
导入android.os.Build;
导入android.os.Bundle;
导入android.support.v4.app.Fragment;
导入android.support.v4.app.FragmentActivity;
导入android.support.v4.app.FragmentManager;
导入android.support.v4.app.FragmentPagerAdapter;
导入android.support.v4.util.SparseArrayCompat;
导入android.support.v4.view.ViewPager;
导入android.view.view;
导入android.widget.AbsListView;
导入android.widget.TextView;
@SuppressLint(“新API”)
公共类ViewPagePractivity扩展了FragmentActivity实现
ScrollTabHolder,ViewPager.OnPageChangeListener{
public static final boolean NEEDS_PROXY=Integer.valueOf(Build.VERSION.SDK_INT).intValue()<11;
私人观点领袖;
私人页面滑动Abstrip MPAGERSLIDINGAbstrip;
私有视图寻呼机mViewPager;
私人寻呼器;
私人室内高度;
私人国际领袖;
私人翻译;
私有文本视图信息;
私营企业;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mMinHeaderHeight=getResources().getDimensionPixelSize(R.dimen.min\u header\u height);
mHeaderHeight=getResources().getDimensionPixelSize(R.dimen.header\U高度);
mMinHeaderTranslation=-mMinHeaderHeight;
setContentView(R.layout.activity_main);
mHeader=findviewbyd(R.id.header);
info=(TextView)findViewById(R.id.info);
mpagerslidingtastrip=(pagerslidingtastrip)findViewById(R.id.tabs);
mViewPager=(ViewPager)findViewById(R.id.pager);
mViewPager.setOffscreenPageLimit(4);
mPagerAdapter=new-PagerAdapter(getSupportFragmentManager());
mPagerAdapter.setTabHolderScrollingContent(本文件);
mViewPager.setAdapter(mPagerAdapter);
mPagerSlidingTabStrip.setViewPager(mViewPager);
MPagerSlidingTastrip.setOnPageChangeListener(此);
mLastY=0;
}
@凌驾
公共无效onPageScrollStateChanged(int arg0){
//没什么
}
@凌驾
已滚动页面上的公共无效(int-position、float-positionOffset、int-positionOffsetPixels){
如果(positionOffsetPixels>0){
int currentItem=mViewPager.getCurrentItem();
SparseArrayCompat scrollTabHolders=mpageAdapter.getScrollTabHolders();
电流保持器;
如果(位置<当前项目){
currentHolder=scrollTabHolders.valueAt(位置);
}否则{
currentHolder=scrollTabHolders.valueAt(位置+1);
}
if(需要_代理){
//托多不好
currentHolder.adjustScroll(mHeader.getHeight()-mLastY);
mHeader.postInvalidate();
}否则{
currentHolder.adjustScroll((int)(mHeader.getHeight()+mHeader.getTranslationY());
}
}
}
@凌驾
已选择页面上的公共无效(内部位置){
SparseArrayCompat scrollTabHolders=mpageAdapter.getScrollTabHolders();
ScrollTabHolder currentHolder=scrollTabHolders.valueAt(位置);
if(需要_代理){
//托多不好
currentHolder.adjustScroll(mHeader.getHeight()-mLastY);
mHeader.postInvalidate();
}否则{
currentHolder.adjustScroll((int)(mHeader.getHeight()+mHeader.getTranslationY());
}
}
@凌驾
public void onScroll(AbsListView视图、int firstVisibleItem、int visibleItemCount、int totalItemCount、int pagePosition){
if(mViewPager.getCurrentItem()==pagePosition){
int scrollY=getScrollY(视图);
if(需要_代理){
//托多不好
mLastY=-Math.max(-scrollY,mMinHeaderTranslation);
info.setText(String.valueOf(scrollY));
mHeader.scrollTo(0,mLastY);
mHeader.postInvalidate();
}否则{
mHeader.setTranslationY(Math.max(-scrollY,mminheadtranslation));
}
}
}
@凌驾
公共滚动(整数滚动高度){
//没什么
}
public int getScrollY(AbsListView视图){
视图c=View.getChildAt(0);
如果(c==null){
返回0;
}
int firstVisiblePosition=view.getFirstVisiblePosition();
int top=c.getTop();
int headerHeight=0;
如果(firstVisiblePosition>=1){
人头高度=m人头高度;
}
返回-顶部+第一个可见位置*c.getHeight()+头部高度;
}
公共静态浮子夹(浮子值、浮子最大值、浮子最小值){
返回Math.max(Math.min(value,min),max);
}
公共类PagerAdapter扩展了FragmentPagerAdapter{
私人SparseArrayCompat MSCRolltabholder;
私有最终字符串[]标题={“第1页”、“第2页”、“第3页”、“第4页”};
私人卷轴;
公共页雷达(碎片管理器fm){
超级(fm);
mScrollTabHolders=new SparseArrayCompat();
}
public void setTabHolderScrollingContent(ScrollTabHolder侦听器){
mListener=监听器;
}
@凌驾
公共字符序列getPageTitle(int位置){
返回标题[职位];
}
@凌驾
public int getCount(){
返回标题。长度;
}
@凌驾
公共片段getItem(int位置){
ScrollTabHolderFragment=(ScrollTabHolderFragment)SampleListFragment.newInstance(位置);
mScrollTabHolders.put(位置、碎片);
if(mListener!=null){
碎片。固定支架(mListener);
}
返回片段;
}
公共SparseArrayCompat getScrollTabHolders(){
返回表格持有人;