ビュー関連の知識を考えます

質問を熟考すること:
のViewGroupにビューが追加されますが、それはビューに十分な高さを割り当てません。画面を動的に移動するとダウン効果を表示または非表示にすることが可能となる、ビューの高さを調整するためにプルダウンされた場合。

問題は、関係します:

  1. 高さビュー0に割り当てられています:
addView(mContainer, new LayoutParams(LayoutParams.MATCH_PARENT, 0));
  1. ビュー重力のViewGroupは内に配置された
    、高さがチャネリングまで徐々に増加させるように常に表示のViewGroup下、(1)ボトム
    高さに向かって徐々に増加するように、上部に常にのViewGroupの表示と、(2)トップディセンダー;
setGravity(Gravity.BOTTOM);
  1. 重力ビュー自体の設定
    にかかわらず、それらの高さの、常に独自の地域で一番下の内容を見る;:(1)ボトム
    (2)トップ:コンテンツを見ることは関係なく、その高さの、常にその地域の中で最も上位です。
view.setGravity(Gravity.BOTTOM);
  1. getMeasuredHeight和のgetHeight的区别
    measuredHeightの-どのように大きなビューは、親内であることを望んでいます。
    描画時には、レイアウト後の画面上の高さ、実際のサイズ、。

(1)ときgetMeasuredHeightを呼び出すには?
カスタムビュー、コンストラクタ、コールmeasure()メソッドの後、あなたは)(getMeasuredHeightを得ることができます。

measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
mMeasuredHeight = getMeasuredHeight();

?のgetHeight()を呼び出すとき
のRunnableを投稿ハンドラを使用します:

new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                int height = getHeight();
            }
}, 100);
  1. 高さを動的に調整を見ます
ViewGroup.LayoutParams layoutParams = mView.getLayoutParams();
layoutParams.height = (int) v;
mView.setLayoutParams(layoutParams);

おすすめ

転載: blog.csdn.net/weixin_33933118/article/details/90837035