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(){
返回表格持有人;