注:要有两个类,,一个是main主类,,然后一个是Fragment
布局也是两个
主布局控件代码是:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.com.henxianhuadong.MainActivity"> <!--横向滑动菜单--> <android.support.design.widget.TabLayout android:layout_width="match_parent" android:layout_height="40dp" android:id="@+id/tl" app:tabGravity="center" app:tabIndicatorColor="#fff" app:tabMode="scrollable" app:tabSelectedTextColor="@color/colorPrimary" app:tabTextColor="@color/colorPrimary"></android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/vp" android:layout_below="@id/tl"></android.support.v4.view.ViewPager> </RelativeLayout>字布局文件中是:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.com.henxianhuadong.Fragment01"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#f00" android:textSize="100sp" android:text="asdas" android:id="@+id/tv"/>
mainActivity中的代码是:
import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.LinearLayout; import android.widget.TableLayout; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private LinearLayout ll; private List<String> tabMenu; private ViewPager vp; private TabLayout tl; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tl = findViewById(R.id.tl); vp = findViewById(R.id.vp); getData(); vp.setAdapter(new MyAdapter(getSupportFragmentManager())); //将tabLayout组件于ViewPage组件进行关联 tl.setupWithViewPager(vp); } private void getData() { tabMenu=new ArrayList<>(); tabMenu.add("推荐"); tabMenu.add("新时达"); tabMenu.add("热点"); tabMenu.add("北京"); tabMenu.add("视频"); tabMenu.add("娱乐"); tabMenu.add("图片"); tabMenu.add("问答"); tabMenu.add("科技"); tabMenu.add("汽车"); } class MyAdapter extends FragmentPagerAdapter{ public MyAdapter(FragmentManager fm) { super(fm); } //返回页面的标题 @Override public CharSequence getPageTitle(int position) { return tabMenu.get(position); } @Override public Fragment getItem(int position) { Fragment01 fragment = new Fragment01(); //传值 Bundle bundle = new Bundle(); bundle.putString("data",tabMenu.get(position)); fragment.setArguments(bundle); return fragment; } @Override public int getCount() { return tabMenu.size(); } }}
Fragment中的代码是:
import android.support.annotation.Nullable; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class Fragment01 extends Fragment{ private View view; private TextView tv; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.activity_fragment,container,false); tv = view.findViewById(R.id.tv); Bundle arguments = getArguments(); String data = arguments.getString("data"); tv.setText(data); return view; } }