2017-08-24 12 views
1

基本的には、フラグメントのツールバーにリフレッシュボタンを配置したいと考えています。私の主な活動には4つの断片がありますが、そのうちの1つにリフレッシュアイコンが必要です。ここでImageViewをToolBarから1つを除くすべてのフラグメントに隠す

は私のツールバーのコードは、私が

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    ImageView refreshResults = (ImageView) getActivity().findViewById(R.id.refreshResults); 
    refreshResults.setVisibility(View.GONE); 
} 

をした私は私のフラグメントの内部

refreshResults = (ImageView) findViewById(R.id.refreshResults); 
    refreshResults.setVisibility(View.GONE); 

をした私のActivityクラスの内部

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    app:layout_scrollFlags="scroll|enterAlways" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> 


    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_cached_black_24dp" 
     android:layout_alignParentRight="true" 
     android:layout_marginRight="20dp" 
     android:tint="@color/colorWhite" 
     android:layout_gravity="right" 
     android:id="@+id/refreshResults" 
     android:textSize="12sp" 
     android:background="@null" 
     android:layout_alignParentEnd="true"/> 


</android.support.v7.widget.Toolbar> 

である私は、断片にVISIBLE置きます私はそれを示したいと思う。

私は好きなほど滑らかではありません...私が探しているものの種類のものを扱う良い方法はありますか?私の主な活動の内部

私が得た:HERE

private void setupViewPager(ViewPager viewPager) { 
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
    adapter.addFragment(new HomeFragment(), "0"); 
    adapter.addFragment(new PickYourProsFragment(), "1"); 
    adapter.addFragment(new ResultsFragment(), "2"); 
    adapter.addFragment(new ChatFragment(), "3"); 
    viewPager.setAdapter(adapter); 
} 

class ViewPagerAdapter extends FragmentPagerAdapter { 
    private final List<Fragment> fragmentList = new ArrayList<>(); 
    private final List<String> fragmentTitleList = new ArrayList<>(); 

    public ViewPagerAdapter(FragmentManager manager) { 
     super(manager); 
    } 

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

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

    public void addFragment(Fragment fragment, String title) { 
     fragmentList.add(fragment); 
     fragmentTitleList.add(title); 
    } 

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

は、この後に出くわす誰のためのソリューションです。

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
    @Override 
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

    } 

    @Override 
    public void onPageSelected(int position) { 
     if (position == 0) { 
      System.out.println("0"); 
      refreshResults.setVisibility(View.GONE); 
     } else if (position == 1) { 
      System.out.println("1"); 
      refreshResults.setVisibility(View.GONE); 
     } else if (position == 2) { 
      System.out.println("2"); 
      refreshResults.setVisibility(View.VISIBLE); 
     } else if (position == 3) { 
      System.out.println("3"); 
      refreshResults.setVisibility(View.GONE); 
     } 
    } 
+0

ビューページャアダプタを表示/非表示にすることができます親アクティビティにViewPagerためOnPageChangeListenerを上書きすることができアダプター用ビューポケットベルを使用している場合。私のポストを更新しないでください。 – DroiDev

+0

アイコン(アクションボタン)でメニュー項目を使用できない理由はありますか? – 0X0nosugar

+0

それを試してみました...何らかの理由でメニューが表示されませんでした。しかし、私はすぐに病気のポストの解決策を得た – DroiDev

答えて

1

あなたはあなたがonPageSelected(int position)

+1

チップのおかげで。そのため私は上記の回答を理解することができました。 – DroiDev

関連する問題