片段未在viewPager滚动显示内容 - Android

时间:2017-03-17 17:23:49

标签: java android xml mobile fragment

我是Android新手.. 我正在尝试使用滑动选项卡创建一个简单的应用程序,以在2个片段之间滚动。片段用虚拟按钮填充,以查看滚动是否有效。然而,当我运行所有我看到的是顶部的viewPager索引没有片段。我也使用Android提供的这两个文件SlidingTabLayout.java和SlidingTabStrip.java。这是我的课程: MyFragmentPagerAdapter.java

package billdozer.com.testxml;
    import android.content.Context;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentManager;
    import android.support.v4.app.FragmentPagerAdapter;

    public class MyFragmentPagerAdapter extends FragmentPagerAdapter {

    // Holds tab titles
    private String tabTitles[] = new String[] { "Frag #1", "Frag #2"};
    private Context context;

    public MyFragmentPagerAdapter(FragmentManager fm, Context context) {
        super(fm);
        this.context = context;
    }

    @Override
    public int getCount() {
        return 2;
    }

    // Return the correct Fragment based on index
    @Override
    public Fragment getItem(int position) {
        if(position == 0){
            return new TabFragment1();
        } else if(position == 1) {
            return new TabFragment2();
        }

        return null;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        // Return the tab title to SlidingTabLayout
        return tabTitles[position];
    }
   }

TabFragment1.java

 package billdozer.com.testxml;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class TabFragment1 extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View view = inflater.inflate(R.layout.tab_fragment_1, container, false);
        return view;
    }
}

TabFragment2.java

    package billdozer.com.testxml;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class TabFragment2 extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View view = inflater.inflate(R.layout.tab_fragment_2, container, false);
        return view;
    }
}

tab_fragment_1.xml

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TableLayout
        android:id="@+id/tl"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:gravity="center" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:gravity="center" >

            <Button
                android:id="@+id/button1"
                android:layout_weight="1"
                android:text="@string/_1" />

            <Button
                android:id="@+id/button2"
                android:layout_weight="1"
                android:text="@string/_2" />

            <Button
                android:id="@+id/button3"
                android:layout_weight="1"
                android:text="@string/_3" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center" >

            <Button
                android:id="@+id/button5"
                android:layout_weight="1"
                android:text="@string/_4" />

            <Button
                android:id="@+id/button6"
                android:layout_weight="1"
                android:text="@string/_5" />

            <Button
                android:id="@+id/button7"
                android:layout_weight="1"
                android:text="@string/_6" />
        </TableRow>
    </TableLayout>

</LinearLayout>

tab_fragment_2.xml

  <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TableLayout
        android:id="@+id/tl"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:gravity="center" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:gravity="center" >

            <Button
                android:id="@+id/button1"
                android:layout_weight="1"
                android:text="@string/_7" />

            <Button
                android:id="@+id/button2"
                android:layout_weight="1"
                android:text="@string/_8" />

            <Button
                android:id="@+id/button3"
                android:layout_weight="1"
                android:text="@string/_9" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center" >

            <Button
                android:id="@+id/button5"
                android:layout_weight="1"
                android:text="@string/_10" />

            <Button
                android:id="@+id/button6"
                android:layout_weight="1"
                android:text="@string/_11" />

            <Button
                android:id="@+id/button7"
                android:layout_weight="1"
                android:text="@string/_12" />
        </TableRow>
    </TableLayout>


</LinearLayout>

MainActivity.java

package com.example.user.billdozer_ui;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;

import com.example.user.billdozer_ui.stab.SlidingTabLayout;

public class MainActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);

        viewPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager(),
                MainActivity.this));

        SlidingTabLayout slidingTabLayout = (SlidingTabLayout) findViewById(R.id.sliding_tabs);

        slidingTabLayout.setViewPager(viewPager);
    }
}

activity_main.xml中

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.user.billdozer_ui.MainActivity">

    <com.example.user.billdozer_ui.stab.SlidingTabLayout
        android:id="@+id/sliding_tabs"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="0px" />
</LinearLayout>

0 个答案:

没有答案