Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何更改活动中选项卡布局的位置?_Java_Android_Tabs - Fatal编程技术网

Java 如何更改活动中选项卡布局的位置?

Java 如何更改活动中选项卡布局的位置?,java,android,tabs,Java,Android,Tabs,我有一个有三个选项卡的活动,每当我试图更改活动中选项卡布局的位置时,如果单击位于位置2的最后一个选项卡,就会出现错误。请帮忙 package comeagain.materialdesign.activities; import android.content.ComponentName; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle;

我有一个有三个选项卡的活动,每当我试图更改活动中选项卡布局的位置时,如果单击位于位置2的最后一个选项卡,就会出现错误。请帮忙

    package comeagain.materialdesign.activities;

import android.content.ComponentName;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ImageSpan;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.ImageView;
import android.widget.Toast;

import com.oguzdev.circularfloatingactionmenu.library.FloatingActionButton;
import com.oguzdev.circularfloatingactionmenu.library.FloatingActionMenu;
import com.oguzdev.circularfloatingactionmenu.library.SubActionButton;

import android.os.Handler;

import comeagain.materialdesign.Log.L;
import comeagain.materialdesign.Service.MyService;
import comeagain.materialdesign.extras.SortListener;
import comeagain.materialdesign.fragments.FragmentBoxOffice;
import comeagain.materialdesign.fragments.FragmentSearch;
import comeagain.materialdesign.fragments.FragmentUpcoming;
import comeagain.materialdesign.fragments.MyFragment;
import comeagain.materialdesign.fragments.NavigationDrawerFragment;
import comeagain.materialdesign.R;
import comeagain.materialdesign.views.SlidingTabLayout;
import it.neokree.materialtabs.MaterialTab;
import it.neokree.materialtabs.MaterialTabHost;
import it.neokree.materialtabs.MaterialTabListener;
import me.tatarka.support.job.JobInfo;
import me.tatarka.support.job.JobScheduler;

public class MainActivity extends AppCompatActivity implements MaterialTabListener, View.OnClickListener {

    private static final int JOB_ID = 100;
    private Toolbar toolbar;
    private ViewPager mPager;
    private MaterialTabHost mTabHost;
    private SlidingTabLayout mTabs;
    private ViewPagerAdapter adapter;
    private ViewGroup mCointainerTooobar;

    public static final int MOVIEE_HITS =0;
    public static final int MOVIES_SEARCH_RESULTS = 2;
    public static final int MOVIES_UPCOMING = 1;
    public static final int TAB_COUNT = 3;
    private JobScheduler mJobScheduler;
    private static final long POLL_FREQUENCY = 28800000;

    private static final String TAG_SORT_NAME = "sortName";
    private static final String TAG_SORT_DATE = "sortDate";
    private static final String TAG_SORT_RATINGS = "sortRatings";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        buildFAB();
        setUpTabs();
        setupJob();
        setUpDrawer();

    }

    public void onDrawerItemClicked(int index){
        mPager.setCurrentItem(index);

    }
    public View getContainerToolbar(){
        return mCointainerTooobar;
    }
    public void setUpDrawer() {

        toolbar = (Toolbar) findViewById(R.id.app_bar);
        setSupportActionBar(toolbar);
/*
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
*/
        NavigationDrawerFragment drawerFragment = (NavigationDrawerFragment)
                getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
        drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), toolbar);
    }

    public void setUpTabs() {
        mPager = (ViewPager) findViewById(R.id.pager);

        mTabHost = (MaterialTabHost) findViewById(R.id.materialTabHost);
        adapter = new ViewPagerAdapter(getSupportFragmentManager());
        mPager.setAdapter(adapter);
        mPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
                mTabHost.setSelectedNavigationItem(position);
            }
        });
        for (int i = 0; i < adapter.getCount(); i++) {
            mTabHost.addTab(
                    mTabHost.newTab()
                            .setIcon(adapter.getIcon(i))
                            .setTabListener(this)
            );
        }


    }

    public void setupJob() {
        mJobScheduler = JobScheduler.getInstance(this);
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                constructJob();
            }
        }, 30000);


    }

    public void constructJob() {
        JobInfo.Builder builder = new JobInfo.Builder(JOB_ID, new ComponentName(this, MyService.class));
        builder.setPeriodic(POLL_FREQUENCY)
                .setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
                .setPersisted(true);
        mJobScheduler.schedule(builder.build());

    }

    private void buildFAB() {
        // in Activity Context
        ImageView icon = new ImageView(this); // Create an icon
        icon.setImageResource(R.drawable.ic_action_new);
        FloatingActionButton actionButton = new FloatingActionButton.Builder(this)
                .setContentView(icon)
                .setBackgroundDrawable(R.drawable.selector_button_red)
                .build();

// repeat many times:
        ImageView iconSortName = new ImageView(this);
        iconSortName.setImageResource(R.drawable.ic_action_alphabets);
        ImageView iconSortDate = new ImageView(this);
        iconSortDate.setImageResource(R.drawable.ic_action_calendar);
        ImageView iconSortRatings = new ImageView(this);
        iconSortRatings.setImageResource(R.drawable.ic_action_important);

        // set background for all the buttons
        SubActionButton.Builder itemBuilder = new SubActionButton.Builder(this);
        itemBuilder.setBackgroundDrawable(getResources().getDrawable(R.drawable.selector_sub_button_gray));

        // build the sub buttons
        SubActionButton buttonSortName = itemBuilder.setContentView(iconSortName).build();
        SubActionButton buttonSortDate = itemBuilder.setContentView(iconSortDate).build();
        SubActionButton buttonSortRatings = itemBuilder.setContentView(iconSortRatings).build();

        buttonSortName.setTag(TAG_SORT_NAME);
        buttonSortDate.setTag(TAG_SORT_DATE);
        buttonSortRatings.setTag(TAG_SORT_RATINGS);

        buttonSortName.setOnClickListener(this);
        buttonSortDate.setOnClickListener(this);
        buttonSortRatings.setOnClickListener(this);
        //Add the sub buttons to the main floating action button
        FloatingActionMenu actionMenu = new FloatingActionMenu.Builder(this)
                .addSubActionView(buttonSortName)
                .addSubActionView(buttonSortDate)
                .addSubActionView(buttonSortRatings)

                        // ...
                .attachTo(actionButton)
                .build();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            Toast.makeText(this, "Hey you just hit " + item.getTitle(), Toast.LENGTH_SHORT).show();
            return true;
        }

        if (id == R.id.Navigation) {
            Intent intent = new Intent(this, Sub_Activity.class);
            startActivity(intent);
            return true;
        }
        if (id == R.id.TabsWithLibrary) {
            startActivity(new Intent(this, ActivityUsingTabLibrary.class));
            return true;
        }
        if (id == R.id.VectorTest) {
            startActivity(new Intent(this, VectorTestActivity.class));
            return true;
        }

        return onOptionsItemSelected(item);
    }

    @Override
    public void onTabSelected(MaterialTab tab) {
        mPager.setCurrentItem(tab.getPosition());

    }

    @Override
    public void onTabReselected(MaterialTab tab) {

    }

    @Override
    public void onTabUnselected(MaterialTab tab) {

    }

    @Override
    public void onClick(View v) {
        //call instantiate item since getItem may return null depending on whether the PagerAdapter is of type FragmentPagerAdapter or FragmentStatePagerAdapter
        Fragment fragment = (Fragment) adapter.instantiateItem(mPager, mPager.getCurrentItem());
        if (fragment instanceof SortListener) {

            if (v.getTag().equals(TAG_SORT_NAME)) {
                //call the sort by name method on any Fragment that implements sortlistener
                ((SortListener) fragment).onSortByName();
            }
            if (v.getTag().equals(TAG_SORT_DATE)) {
                //call the sort by date method on any Fragment that implements sortlistener
                ((SortListener) fragment).onSortByDate();
            }
            if (v.getTag().equals(TAG_SORT_RATINGS)) {
                //call the sort by ratings method on any Fragment that implements sortlistener
                ((SortListener) fragment).onSortByRatings();
            }
        }
    }


    class ViewPagerAdapter extends FragmentStatePagerAdapter {
        /*private String tabs[] = new String[]{"Tab 1 ", "Tab 2 ", " Tab 3"};*/
        int icons[] = {R.drawable.ic_action_trending_orange,
                R.drawable.ic_action_upcoming_orange,
                R.drawable.ic_action_search_orange,

        };

        /*String[] tabText = getResources().getStringArray(R.array.tabs);*/
        FragmentManager fragmentManager;

        public ViewPagerAdapter(FragmentManager fm) {
            super(fm);
            fragmentManager = fm;
        }


        @Override
        public Fragment getItem(int num) {
            Fragment fragment = null;
            switch (num) {
                case MOVIEE_HITS:
                    fragment = FragmentBoxOffice.newInstance("", "");

                    break;
                case MOVIES_UPCOMING:
                    fragment = FragmentUpcoming.newInstance("", "");

                    break;
                case MOVIES_SEARCH_RESULTS:
                    fragment = FragmentSearch.newInstance("", "");

                    break;

            }
            return fragment;
        }


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

        @Override

        public CharSequence getPageTitle(int position) {
            return getResources().getStringArray(R.array.tabs)[position];
        }

        private Drawable getIcon(int position) {
            return getResources().getDrawable(icons[position]);
        }
    }


}
将getItemCount()更新为此

@Override
public int getItemCount() {
    return mlistMovies == null ? 0 : mlistMovies.length;
}
将getItemCount()更新为此

@Override
public int getItemCount() {
    return mlistMovies == null ? 0 : mlistMovies.length;
}

工作,但是,我的第一个标签中的内容消失后,我从我的最后一个标签导航回来。我必须再次刷新。你如何解决这个问题?我不确定,但可以将其用作参考yourList.scrollToPosition(yourList.getAdapter().getItemCount()-1);工作,但是,我的第一个标签中的内容消失后,我从我的最后一个标签导航回来。我必须再次刷新。你如何解决这个问题?我不确定,但可以将其用作参考yourList.scrollToPosition(yourList.getAdapter().getItemCount()-1);
@Override
public int getItemCount() {
    return mlistMovies == null ? 0 : mlistMovies.length;
}