0

私はアクティビティ内にビューページを持っています。このアクティビティでは、3つの異なるクラス拡張フラグメントを作成したので、3つのフラグメント(タブではない)を起動します。それは断片間の水平スクロールでうまくいきます。 ここで、collapsingToolbarを別の画像表示でフラグメントに使用したいとします。 活動 - viewpager、Fragment1のXML collapsingToolbar、Fragement1も 'content_launch.xml' Fragement1クラスが持つ有する - ツールバーを加えなく(CollapsingToolbarをフェッチしながら、それがnullを返すされているオブジェクト以下のようCollapsingToolbarLayout nullを返すフラグメント

アクティビティXML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" tools:context=".activity.LaunchActivity"> 

<android.support.v4.view.ViewPager 
android:id="@+id/launchpager" 
android:layout_width="match_parent" 
android:layout_height="0px" 
android:layout_weight="1" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 
</LinearLayout> 
viewpager

ViewPager viewPager = (ViewPager) findViewById(R.id.launchpager); 
viewPager.setAdapter(new LaunchAdapter(getSupportFragmentManager 
(),getApplicationContext())); 

Fragement1 XML

0を起動する

Activityクラス

Fragment1クラス:

public void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Toolbar quoteToolbar = (Toolbar) getActivity().findViewById(R.id.quote_toolbar); 
    ((AppCompatActivity) getActivity()).setSupportActionBar(quoteToolbar); 
final CollapsingToolbarLayout collapsingToolbar = (CollapsingToolbarLayout) getActivity().findViewById(R.id.quote_collapsing_toolbar); 
} 

collapsingToolbarオブジェクトが..ヌルとして誰かがオブジェクトを取得するために可能な方法を提案することができ、任意の提案を見つけることができません返さ

答えて

0

まず最初:あなたはにのonCreate使用しないでくださいフラグメント内のビュー要素を初期化するには、代わりにonCreateViewを使用する必要があります。次に、getActivity()コンテキストは使用しません。ので、代わりにこのコードの

public void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Toolbar quoteToolbar = (Toolbar) getActivity().findViewById(R.id.quote_toolbar); 
    ((AppCompatActivity) getActivity()).setSupportActionBar(quoteToolbar); 
final CollapsingToolbarLayout collapsingToolbar = (CollapsingToolbarLayout) getActivity().findViewById(R.id.quote_collapsing_toolbar); 
} 

使用この:

@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, 
            @Nullable Bundle savedInstanceState) { 
// inflate your layout.  
View view = inflater.inflate(R.layout.yourlayout, container, false); 
Toolbar quoteToolbar = (Toolbar) view.findViewById(R.id.quote_toolbar); 
((AppCompatActivity) view).setSupportActionBar(quoteToolbar); 
      final CollapsingToolbarLayout collapsingToolbar = (CollapsingToolbarLayout) view.findViewById(R.id.quote_collapsing_toolbar); 

return view 
} 

敬具と幸せな新年! :)

+0

MilanNzさん、ありがとうございました。私はapponpatibilityへのビューのために不可解なタイプになっています。 – prasoons

関連する問題