FrameLayout点击按钮切换
添加权限:
网络请求+网络判断+读取外部储存的权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
加依赖(在最上面)buildToolsVersion "26.0.2"
(最下面)图片和网络请求的依赖
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' compile 'com.google.code.gson:gson:2.2.4'
====================================================================
布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.shenhuiran_0103.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/fl_main"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="9" />
<RadioGroup
android:id="@+id/group"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal">
<RadioButton
android:id="@+id/but1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:text="首页" />
<RadioButton
android:id="@+id/but2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:text="想法" />
<RadioButton
android:id="@+id/but3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:text="市场" />
<RadioButton
android:id="@+id/but4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:text="通知" />
<RadioButton
android:id="@+id/but5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:text="更多" />
</RadioGroup>
</LinearLayout>
</RelativeLayout>
==========================================================
主要方法:
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.FrameLayout;
import android.widget.RadioGroup;
import com.example.shenhuiran_0103.fragment.Main1Fragment;
import com.example.shenhuiran_0103.fragment.Main2Fragment;
import com.example.shenhuiran_0103.fragment.Main3Fragment;
import com.example.shenhuiran_0103.fragment.Main4Fragment;
import com.example.shenhuiran_0103.fragment.Main5Fragment;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private FrameLayout fl_main;
private RadioGroup group;
private ArrayList<Fragment> fragments;
private FragmentManager supportFragmentManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fl_main = (FrameLayout) findViewById(R.id.fl_main);
group = (RadioGroup) findViewById(R.id.group);
initFragments();
supportFragmentManager = getSupportFragmentManager();
supportFragmentManager.beginTransaction().add(R.id.fl_main, fragments.get(0)).commit();
//点击按钮处理切换逻辑
group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int id) {
//i 就是你点击的那个控件的id
//supportFragmentManager可以复用,Transaction不可复用,每次提交后事物就结束了;
switch (id) {
case R.id.but1:
supportFragmentManager.beginTransaction().replace(R.id.fl_main, fragments.get(0)).commit();
break;
case R.id.but2:
supportFragmentManager.beginTransaction().replace(R.id.fl_main, fragments.get(1)).commit();
break;
case R.id.but3:
supportFragmentManager.beginTransaction().replace(R.id.fl_main, fragments.get(2)).commit();
break;
case R.id.but4:
supportFragmentManager.beginTransaction().replace(R.id.fl_main, fragments.get(3)).commit();
break;
case R.id.but5:
supportFragmentManager.beginTransaction().replace(R.id.fl_main, fragments.get(4)).commit();
break;
}
}
});
}
private void initFragments() {
fragments = new ArrayList<>();
fragments.add(new Main1Fragment());
fragments.add(new Main2Fragment());
fragments.add(new Main3Fragment());
fragments.add(new Main4Fragment());
fragments.add(new Main5Fragment());
}
}
=======================================
fragment方法:
importandroid.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import com.example.shenhuiran_0103.R;
public class Main1Fragment extends Fragment {
private TabLayout myTab;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = View.inflate(getActivity(), R.layout.fragment_a, null);
myTab = view.findViewById(R.id.mytab);
return view;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
//添加选项卡
myTab.addTab(myTab.newTab().setText("天枢"));
myTab.addTab(myTab.newTab().setText("天璇"));
myTab.addTab(myTab.newTab().setText("天玑"));
myTab.addTab(myTab.newTab().setText("天权"));
myTab.addTab(myTab.newTab().setText("开阳"));
myTab.addTab(myTab.newTab().setText("玉衡"));
myTab.addTab(myTab.newTab().setText("瑶光"));
//选项卡被选中的监听事件
myTab.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
Toast.makeText(getActivity(),tab.getText().toString(),Toast.LENGTH_SHORT).show();
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
}
------------------------------------------------------------------------------------------
R.layout.fragment_a:
<!-- app:tabGravity="center" 设置居中对齐
app:tabIndicatorColor="@color/colorAccent" 下滑线的颜色
app:tabMode="scrollable" 设置tabLayoout菜单的模式,,,scrollable可以横向滚动 fixed:固定
app:tabSelectedTextColor="@color/colorPrimaryDark" 选中的时候文字的颜色
app:tabTextColor="@color/colorPrimary" 文本默认的颜色 -->
<android.support.design.widget.TabLayout
android:layout_height="50dp"
android:layout_width="match_parent"
android:id="@+id/mytab">
</android.support.design.widget.TabLayout>

浙公网安备 33010602011771号