2016-10-14 4 views
0

私のアプリでを使用しています。私はコード(ないXML)からの断片を作成し、FragmentManagerを使用しての活動でそれを注入: Android:YoutubePlayerSupportFragmentの幅/高さを設定する方法

String video_id = "LHcP4MWABGY"; 

YoutubeFragment youtubeFragment = YoutubeFragment.newInstance(video_id); 

mFragmentManager.beginTransaction().replace(R.id.activity_main, youtubeFragment).commit() 

私はユーチューブフラグメントの幅/高さを定義することができますどのように?私は試しました:

ViewGroup.LayoutParams params = (ViewGroup.LayoutParams)youtubeFragment.getView().getLayoutParams(); 

params.height = 400; 

youtubeFragment.getView().setLayoutParams(params); 

しかし、これは私にNullPointerExceptionを与えます。例外は、この行にある:

ViewGroup.LayoutParams params = (ViewGroup.LayoutParams)youtubeFragment.getView().getLayoutParams(); 

これは、エラーログです:。。アッバスが示唆したように)問題は、トランザクション(ある、

java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.ViewGroup$LayoutParams android.view.View.getLayoutParams()' on a null object reference 
       at com.test.revy.radioshake.MainActivity$1.onItemClick(MainActivity.java:249) 
       at android.widget.AdapterView.performItemClick(AdapterView.java:346) 
       at android.widget.AbsListView.performItemClick(AbsListView.java:1550) 
       at android.widget.AbsListView$PerformClick.run(AbsListView.java:3830) 
       at android.widget.AbsListView$3.run(AbsListView.java:5855) 
       at android.os.Handler.handleCallback(Handler.java:739) 
       at android.os.Handler.dispatchMessage(Handler.java:95) 
       at android.os.Looper.loop(Looper.java:148) 
       at android.app.ActivityThread.main(ActivityThread.java:7325) 
       at java.lang.reflect.Method.invoke(Native Method) 
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
+0

ログを記録します。また、例外が発生する行を指します。 – Abbas

+0

ログを追加しました – revy

+1

フラグメントを追加した後、トランザクションを完了するのを待たずに、つまり、 'youtubeFragment'の' onCreateView() 'がまだ呼び出されていないか、完了していないと思います。いずれかの方法でビューが設定されていません。 – Abbas

答えて

1

[..](コミット)FragmentManagerの(非同期呼び出し)。 commit()の代わりにcommitNow()を使用して解決しました。

mFragmentManager.beginTransaction().replace(R.id.activity_main, youtubeFragment).commitNow() 
+0

代わりに 'YoutubeFragment'の' onCreateView() 'でサイズを変更する必要があります。 – Abbas

関連する問題