2017-06-22 5 views
0

私はthis libraryを使用して、垂直方向にスクロールするViewPagerを使用します。 ViewPagerには2人の子供がいます(子供はFragmentではなく、です)。私はそれらのうちの1つを常にフルスクリーンのサイズにしたいのですが、常にビューのコンテンツを動的にラップする必要があります(にはEditText 1行から数えて、Viewのサイズを増やすことができます)。Android ViewPagerは、ページを再フレールすることなく動的にgetPageWidthを更新します。

私は現在持っているアプローチは、ViewTreeObserver.OnGlobalLayoutListener()を用いて測定されるViewPagerの画分図の(それはVerticalViewPagerなので、幅が高さとなる)高さを設定するgetPageWidth()を使用しています。測定が終わったらnotifyDataSetChanged()return POSITION_NONE;getItemPosition(Object object)にも使用しています)、ViewPagerは、フラクションの正しい値がgetPageWidth()になるようにページを再膨張させます。

次に、EditTextが新しい行を取得するたびに、上記のプロセスを繰り返すnotifyDataSetChanged()を呼び出します。

これは、ユーザがViewが再作成されていることと、ソフトキーボードが消灯していることを確認できるため、非常に不便な解決方法です。

私の質問は次のとおりです:Viewを再作成せずに、ページの幅(私の場合は高さ)を動的に更新する方法はありますか?

答えて

0

は、私はあなたがまだviewPager.getWidth()ViewPager幅を取得または変数にviewPager.getLayoutParams().widthを格納することによって、ご希望の新しい幅を決定することができると信じて

ViewPager viewPager; //your viewpager object 
viewPager.getLayoutParams().width = DESIRED_NEW_WIDTH; //sets the width of view 
viewPager.requestLayout(); //updates view so that change to width takes place 

を試してみてください。そして、望ましい割合を決定する。

関連する問題