This commit is contained in:
jinyuer
2020-08-14 17:07:43 +08:00
parent fa1413fc30
commit fda8305a13
28 changed files with 1686 additions and 287 deletions

View File

@@ -6,21 +6,26 @@ import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.MotionEvent;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import com.gyf.immersionbar.ImmersionBar;
import com.sl.house_property.databinding.ActivityMainTabBinding;
import com.sl.house_property.discovery.DiscoveryFragment;
import java.util.ArrayList;
import tools.Config;
import utils.UtilHelpers;
public class MainTabActivity extends BaseActivity<ActivityMainTabBinding>
implements View.OnClickListener,MainFragment.OnFragmentInteractionListener,
implements View.OnClickListener, MainFragment.OnFragmentInteractionListener,
Main1Fragment.OnFragmentInteractionListener,
Main2Fragment.OnFragmentInteractionListener,
Main3Fragment.OnFragmentInteractionListener,
Main4Fragment.OnFragmentInteractionListener{
Main4Fragment.OnFragmentInteractionListener {
/*定义的全局返回码例如在主界面的某个Fragment点击某一项后进入下一个界面后
如果在下一个界面有数据更改需要Fragment刷新时通过setResult方法通知主界面主界面的
@@ -30,58 +35,96 @@ implements View.OnClickListener,MainFragment.OnFragmentInteractionListener,
public static final int RESUlT_CODE_0 = 201;//首页
public static final int RESUlT_CODE_1 = 202;//发现
public static final int RESUlT_CODE_2 = 203;//购物车
// public static final int RESUlT_CODE_3 = 204;//
// public static final int RESUlT_CODE_3 = 204;//
public static final int RESUlT_CODE_4 = 205;//我的
private RadioGroup radioGroup;
private MainFragment fragment0;
private DiscoveryFragment fragment1;
private Main3Fragment fragment2;
private Main2Fragment fragment3;
private Main4Fragment fragment4;
private RadioGroup radioGroup;
private MainFragment fragment0;
private DiscoveryFragment fragment1;
private Main3Fragment fragment2;
private Main2Fragment fragment3;
private Main4Fragment fragment4;
private Fragment currentFragment;
private int myeditcode=1000;
private int myeditcode = 1000;
private int nowradioId;
private int nowradioId;
// @Override
// public boolean dispatchTouchEvent(MotionEvent ev) {
// switch (ev.getAction()) {
// case MotionEvent.ACTION_DOWN:
//
// UtilHelpers.hideKeyboard(ev, getCurrentFocus(), this);
// break;
// }
// return super.dispatchTouchEvent(ev);
//
// }
public void visibilyBottom(int isVisibily){
findViewById(R.id.rl_bottom).setVisibility(isVisibily);
}
//2. 保存MyOnTouchListener接口的列表
private ArrayList<MyOnTouchListener> onTouchListeners = new ArrayList<MyOnTouchListener>();
//1.触摸事件接口
public interface MyOnTouchListener {
public boolean onTouch(MotionEvent ev);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
for (MyOnTouchListener listener : onTouchListeners) {
// listener.onTouch(ev);
}
return super.dispatchTouchEvent(ev);
}
//4.提供给Fragment通过getActivity()方法来注册自己的触摸事件的方法
public void registerMyOnTouchListener(MyOnTouchListener myOnTouchListener) {
onTouchListeners.add(myOnTouchListener);
}
//5.提供给Fragment通过getActivity()方法来注销自己的触摸事件的方法
public void unregisterMyOnTouchListener(MyOnTouchListener myOnTouchListener) {
onTouchListeners.remove(myOnTouchListener);
}
@Override
protected int getLayoutResId() {
return R.layout.activity_main_tab;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Config.getInstance(MainTabActivity.this).put("MainTabActivity",true);
Config.getInstance(MainTabActivity.this).put("MainTabActivity", true);
//setPhotoSysyrmbar();
//setSytemBar(R.color.colorPrimary);//设置主题样式
//setFramentMarginTop();
//setSytemBar(R.color.colorPrimary);//设置主题样式
//setFramentMarginTop();
ImmersionBar.with(this)
.keyboardEnable(true) //解决软键盘与底部输入框冲突问题
// .keyboardEnable(true, WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE
// | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE) //软键盘自动弹出
.init();
initView();
}
@SuppressLint("MissingSuperCall")
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
super.onSaveInstanceState(outState);
}
private void initView() {
radioGroup= mDataBinding.radioGroup;
for (int i = 0; i <radioGroup.getChildCount() ; i++) {
RadioButton myRadioButton= (RadioButton) radioGroup.getChildAt(i);
radioGroup = mDataBinding.radioGroup;
for (int i = 0; i < radioGroup.getChildCount(); i++) {
RadioButton myRadioButton = (RadioButton) radioGroup.getChildAt(i);
myRadioButton.setOnClickListener(this);
}
mDataBinding.button.setChecked(true);
nowradioId= mDataBinding.button.getId();
nowradioId = mDataBinding.button.getId();
mDataBinding.getRoot().setBackground(getResources().getDrawable(R.drawable.background_slowly));
changeFragment( mDataBinding.button.getId());
changeFragment(mDataBinding.button.getId());
}
@@ -159,26 +202,27 @@ implements View.OnClickListener,MainFragment.OnFragmentInteractionListener,
}
}
@Override
public void onClick(View view) {
if(view.getId()==nowradioId)return;
RadioButton myRadioButton=(RadioButton)findViewById(nowradioId);
if(view.getId()==R.id.button4){
if( (Config.getInstance(MainTabActivity.this).getUser()==null)){
Intent intent =new Intent(MainTabActivity.this,LoginActivity.class);
if (view.getId() == nowradioId) return;
RadioButton myRadioButton = (RadioButton) findViewById(nowradioId);
if (view.getId() == R.id.button4) {
if ((Config.getInstance(MainTabActivity.this).getUser() == null)) {
Intent intent = new Intent(MainTabActivity.this, LoginActivity.class);
startActivity(intent);
myRadioButton=(RadioButton)view;
myRadioButton = (RadioButton) view;
myRadioButton.setChecked(false);
myRadioButton=(RadioButton)findViewById(nowradioId);
myRadioButton = (RadioButton) findViewById(nowradioId);
myRadioButton.setChecked(true);
return;
}
}
myRadioButton.setChecked(false);
myRadioButton=(RadioButton)view;
myRadioButton = (RadioButton) view;
myRadioButton.setChecked(true);
nowradioId=view.getId();
nowradioId = view.getId();
changeFragment(view.getId());
}
@@ -190,8 +234,8 @@ implements View.OnClickListener,MainFragment.OnFragmentInteractionListener,
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
if(resultCode==RESUlT_CODE_4){
if(currentFragment==fragment4){
if (resultCode == RESUlT_CODE_4) {
if (currentFragment == fragment4) {
// if(fragment0!=null){
// fragmentTransaction.remove(fragment0);
// fragment0 = null;
@@ -219,16 +263,16 @@ implements View.OnClickListener,MainFragment.OnFragmentInteractionListener,
// }
// fragmentTransaction.show(fragment4);
// currentFragment = fragment4;
fragment4.refreshData();
}
fragment4.refreshData();
}
try {
// fragmentTransaction.commit();
} catch (Exception e) {
e.fillInStackTrace();
fragmentTransaction.commitAllowingStateLoss();
}
}else if(resultCode==myeditcode){
if(currentFragment==fragment1){
} else if (resultCode == myeditcode) {
if (currentFragment == fragment1) {
fragment1.loadData();
}
}
@@ -237,7 +281,7 @@ implements View.OnClickListener,MainFragment.OnFragmentInteractionListener,
@Override
protected void onDestroy() {
super.onDestroy();
Config.getInstance(MainTabActivity.this).put("MainTabActivity",false);
Config.getInstance(MainTabActivity.this).put("MainTabActivity", false);
}
}