主页面,用于切换
package com.fawcar.dlife6.appmarket.fragment;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.fragment.app.FragmentTransaction;
import androidx.viewpager.widget.ViewPager;
import com.fawcar.dlife6.appmarket.R;
import com.fawcar.dlife6.coreres.widget.view.DImageView;
import com.fawcar.dlife6.coreres.widget.view.DTextView;
public class ServerUpdateFragment extends Fragment implements View.OnClickListener {
private final String TAG = ServerUpdateFragment.class.getSimpleName();
private DTextView tv_wait_update, tv_near_update;
private DImageView img_wait_return;
private ViewPager viewPager;
private FragmentManager fragmentManager;
private FragmentTransaction transaction;
private Fragment fragment;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Log.d(TAG, "onCreateView() called with: inflater = [" + inflater + "], container = [" + container + "], savedInstanceState = [" + savedInstanceState + "]");
return inflater.inflate(R.layout.fragment_server_update,container,false);
}
@Override
public void onStart() {
Log.d(TAG, "onStart() called");
super.onStart();
initView();
}
void initView() {
tv_wait_update = getView().findViewById(R.id.tv_wait_update);
tv_near_update = getView().findViewById(R.id.tv_near_update);
img_wait_return = getView().findViewById(R.id.img_wait_return);
viewPager = getView().findViewById(R.id.fragment_view_pager);
fragmentManager = getActivity().getSupportFragmentManager();
tv_wait_update.setOnClickListener(this::onClick);
tv_near_update.setOnClickListener(this::onClick);
img_wait_return.setOnClickListener(this::onClick);
changeToFragment();
}
private void changeToFragment() {
viewPager.setCurrentItem(0);
tv_wait_update.setAlpha(0.7f);
tv_near_update.setAlpha(1);
//设置viewPager的Adapter,得到当前的Fragment页面
viewPager.setAdapter(new FragmentStatePagerAdapter(fragmentManager) {
@NonNull
@Override
public Fragment getItem(int position) {
return createFragment(position);
}
@Override
public int getCount() {
return 2;
}
});
//设置viewPager的界面改变监听
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
switch (position) {
case 0:
tv_wait_update.setAlpha(0.7f);
tv_near_update.setAlpha(1);
break;
case 1:
tv_wait_update.setAlpha(1);
tv_near_update.setAlpha(0.7f);
break;
default:
break;
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tv_wait_update:
Log.d(TAG, "onClick() tv_wait_update");
tv_wait_update.setAlpha(0.7f);
tv_near_update.setAlpha(1);
viewPager.setCurrentItem(0);
break;
case R.id.tv_near_update:
Log.d(TAG, "onClick() tv_near_update");
tv_wait_update.setAlpha(1);
tv_near_update.setAlpha(0.7f);
viewPager.setCurrentItem(1);
break;
case R.id.img_wait_return:
Log.d(TAG, "onClick() setup return");
transaction = fragmentManager.beginTransaction();
fragment = new SetUpFragment();
transaction.replace(R.id.forget_pass_layout, fragment);
transaction.commitAllowingStateLoss();
break;
default:
break;
}
}
private Fragment createFragment(int position) {
switch (position) {
case 0:
return new WaitUpdateFragment();
case 1:
return new LatestUpdateFragment();
default:
break;
}
return null;
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.fawcar.dlife6.coreres.widget.view.DImageView
android:id="@+id/img_wait_return"
android:layout_width="64px"
android:layout_height="64px"
android:layout_marginLeft="66px"
android:layout_marginTop="11px"
android:background="@mipmap/ic_detail_return" />
<com.fawcar.dlife6.coreres.widget.view.DTextView
android:id="@+id/tv_wait_update"
android:layout_width="134px"
android:layout_height="70px"
android:layout_marginTop="8px"
android:layout_toRightOf="@+id/img_wait_return"
android:gravity="center"
android:alpha="0.7"
android:text="@string/STATE_WAIT_UPDATE"
android:textColor="#FFFFFF"
android:textSize="34px" />
<com.fawcar.dlife6.coreres.widget.view.DTextView
android:id="@+id/tv_near_update"
android:layout_width="168px"
android:layout_height="70px"
android:layout_marginLeft="50px"
android:layout_marginTop="8px"
android:layout_toRightOf="@+id/tv_wait_update"
android:gravity="center"
android:text="@string/STATE_NEAR_UPDATE"
android:textColor="#FFFFFF"
android:textSize="34px" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/fragment_view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/tv_near_update">
</androidx.viewpager.widget.ViewPager>
</RelativeLayout>
两个子页面随便写