package com.dxjia.doubantop.fragments; import android.os.Bundle; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.text.TextUtils; import android.view.View; import android.widget.FrameLayout; import android.widget.TextView; import com.dxjia.doubantop.R; import com.dxjia.doubantop.interfaces.SearchStateToggleListener; import com.dxjia.doubantop.net.DoubanApiUtils; import butterknife.InjectView; /** * Created by 德祥 on 2015/7/14. */ public class SearchPagerFragment extends BaseFragment { @InjectView(R.id.empty_view) TextView mEmptyView; @InjectView(R.id.search_result_container) FrameLayout mSearchResultContainer; private String mSearchKey; private MovieListFragment mSearchResultFragment; private SearchStateToggleListener mSearchStateToggleListener; @Override protected int getLayout() { return R.layout.search_pager_fragment; } public static SearchPagerFragment newInstance() { return new SearchPagerFragment(); } public SearchPagerFragment() { } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mSearchResultFragment = MovieListFragment.newInstance(DoubanApiUtils.API_TYPE_SEARCH); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); initViews(); updateViews(); } private void initViews() { // setup search result container fragment FragmentManager fm = getChildFragmentManager(); FragmentTransaction transaction = fm.beginTransaction(); transaction.replace(R.id.search_result_container, mSearchResultFragment, "SearchContentFragment"); transaction.commit(); mEmptyView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mSearchStateToggleListener != null) { mSearchStateToggleListener.toggleSearchState(); } } }); } private void updateViews() { if (TextUtils.isEmpty(mSearchKey)) { mEmptyView.setVisibility(View.VISIBLE); mSearchResultContainer.setVisibility(View.INVISIBLE); } else { mEmptyView.setVisibility(View.INVISIBLE); mSearchResultContainer.setVisibility(View.VISIBLE); } } public void setSearchStateToggleListener(SearchStateToggleListener l) { mSearchStateToggleListener = l; } public void startSearch(String key) { if (TextUtils.isEmpty(key)) { return; } mSearchKey = key; updateViews(); if (mSearchResultFragment != null) { mSearchResultFragment.startNewSearch(key); } } }