package com.noprom.app.fragment; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.widget.SearchView; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.EditText; import android.widget.Toast; import com.noprom.app.R; import com.noprom.app.widget.viewpagerindicator.TabPageIndicator; import java.util.ArrayList; import java.util.List; /** * 综合Tab 新闻资讯主Fragment * * @author noprom (http://github.com/noprom) * @version 1.0 * Created by noprom on 2014-2-25. */ public class MainFragment extends Fragment { private final String TAG = "MainFragment"; private boolean mSearchCheck; private ViewPager mViewPager; private TabPageIndicator mTabPageIndicator; private List<Fragment> mFragments; private FragmentPagerAdapter mAdapter; private String[] mMainTabTitles; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Log.d(TAG,"onCreateView"); View rootView = inflater.inflate(R.layout.fragment_main, container, false); mViewPager = (ViewPager) rootView.findViewById(R.id.viewpager_main); mTabPageIndicator = (TabPageIndicator) rootView.findViewById(R.id.indicator_main); initView(); rootView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); return rootView; } /** * 初始化主界面新闻资讯的Fragment等 */ private void initView() { mFragments = new ArrayList<Fragment>(); Fragment mNewsFragment = new NewsFragment(); Fragment mHotNewsFragment = new HotNewsFragment(); Fragment mBlogFragment = new BlogFragment(); Fragment mRecommendFragment = new RecommendFragment(); mFragments.add(mNewsFragment); mFragments.add(mHotNewsFragment); mFragments.add(mBlogFragment); mFragments.add(mRecommendFragment); mMainTabTitles = new String[]{"资讯","热点","博客","推荐"}; // 设置适配器 mAdapter = new FragmentPagerAdapter(getFragmentManager()) { @Override public Fragment getItem(int position) { return mFragments.get(position); } @Override public int getCount() { return mFragments.size(); } @Override public CharSequence getPageTitle(int position){ return mMainTabTitles[position]; } }; mViewPager.setAdapter(mAdapter); mTabPageIndicator.setViewPager(mViewPager, 0); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); setHasOptionsMenu(true); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.menu, menu); //Select search item final MenuItem menuItem = menu.findItem(R.id.menu_search); menuItem.setVisible(true); SearchView searchView = (SearchView) menuItem.getActionView(); searchView.setQueryHint(this.getString(R.string.search)); ((EditText) searchView.findViewById(R.id.search_src_text)) .setHintTextColor(getResources().getColor(R.color.nliveo_white)); searchView.setOnQueryTextListener(onQuerySearchView); menu.findItem(R.id.menu_add).setVisible(true); mSearchCheck = false; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_add: Toast.makeText(getActivity(), R.string.add, Toast.LENGTH_SHORT).show(); break; case R.id.menu_search: mSearchCheck = true; Toast.makeText(getActivity(), R.string.search, Toast.LENGTH_SHORT).show(); break; } return true; } private SearchView.OnQueryTextListener onQuerySearchView = new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String s) { return false; } @Override public boolean onQueryTextChange(String s) { if (mSearchCheck) { // implement your search here } return false; } }; }