将教程代码集成到生成的NavigationView代码中

时间:2016-07-15 11:32:52

标签: android

学习android,现在我遇到了一个简单的问题。

我用菜单幻灯片开始了一个新项目

package com.learn2crack.tab;

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

public class MainActivity extends FragmentActivity {
    ViewPager Tab;
    TabPagerAdapter TabAdapter;
    ActionBar actionBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TabAdapter = new TabPagerAdapter(getSupportFragmentManager());

        Tab = (ViewPager)findViewById(R.id.pager);
        Tab.setOnPageChangeListener(
                new ViewPager.SimpleOnPageChangeListener() {
                    @Override
                    public void onPageSelected(int position) {

                        actionBar = getActionBar();
                        actionBar.setSelectedNavigationItem(position);                    }
                });
        Tab.setAdapter(TabAdapter);

        actionBar = getActionBar();
        //Enable Tabs on Action Bar
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        ActionBar.TabListener tabListener = new ActionBar.TabListener(){

            @Override
            public void onTabReselected(android.app.ActionBar.Tab tab,
                    FragmentTransaction ft) {
                // TODO Auto-generated method stub

            }

            @Override
             public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {

                Tab.setCurrentItem(tab.getPosition());
            }

            @Override
            public void onTabUnselected(android.app.ActionBar.Tab tab,
                    FragmentTransaction ft) {
                // TODO Auto-generated method stub

            }};
            //Add New Tab
            actionBar.addTab(actionBar.newTab().setText("Android").setTabListener(tabListener));
            actionBar.addTab(actionBar.newTab().setText("iOS").setTabListener(tabListener));
            actionBar.addTab(actionBar.newTab().setText("Windows").setTabListener(tabListener));

    }

}

现在这是教程代码

import { BarChart } from 'react-native-chart-android';

{...}

render() {
    return (
        <BarChart style={{flex: 1}} data={this.getDate()} />
    );
}

{...}

在使用不同类扩展的MainActivity中查看。我问如何将教程与我的代码集成。

1 个答案:

答案 0 :(得分:0)

您可能希望将TabLayoutViewPager一起使用。

这是一个简单的例子,您可以开始使用它,也许可以帮助您更好地了解它的工作原理。

MainActivity setContentView(R.layout.tabbed_activity)中,您将在onCreate()中致电<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content"/> <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout>

xml看起来像这样:

MainActivity

然后在onCreate中,您将在mTabLayout = (TabLayout) findViewById(R.id.tab_layout); mViewPager = (ViewPager) findViewById(R.id.view_pager); 中初始化这些小部件:

public class ViewPagerTabsAdapter extends FragmentPagerAdapter {

    private List<String> mTabTitles;
    private List<Fragment> mFragments;

    public ViewPagerTabsAdapter(FragmentManager fm) {
        super(fm);
        mTabTitles = new ArrayList<>();
        mFragments = new ArrayList<>();
    }

    @Override
    public Fragment getItem(int position) {
        return mFragments.get(position);
    }

    @Override
    public int getCount() {
        return mFragments.size();
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mTabTitles.get(position);
    }

    public void addTab(int pos, String title, Fragment fragment) {
        mTabTitles.add(pos, title);
        mFragments.add(pos, fragment);
    }
}

对于此视图寻呼机,您将需要一个适配器来处理选项卡(在本例中为片段):

MainActivity#onCreate

然后在您的public class MainActivity extends AppCompatActivity { private ViewPager mViewPager; private TabLayout mTabLayout; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tabbed_activity); mTabLayout = (TabLayout) findViewById(R.id.tab_layout); mViewPager = (ViewPager) findViewById(R.id.view_pager); ViewPagerTabsAdapter pagerAdapter = new ViewPagerTabsAdapter(getSupportFragmentManager()); pagerAdapter.addTab(0, "Tab 1", new Fragment()); pagerAdapter.addTab(1, "Tab 2", new Fragment()); mViewPager.setAdapter(pagerAdapter); mTabLayout.setupWithViewPager(mViewPager); } } 中,您将标签(片段)添加到适配器,然后将其设置为全部:

Timeout

你说你是初学者但是这里有一个教程,它带你了解很多相关内容。我想如果你仔细阅读它,你将设法解决你的问题。 http://www.androidhive.info/2015/09/android-material-design-working-with-tabs/

但你可能还应该阅读一些有关活动和片段的内容。 https://developer.android.com/guide/components/activities.html