0

我想以编程方式将 TextView 添加到布局的末尾,我使用以下代码添加 textview:

             final TextView valueTV = new TextView(getActivity());
             valueTV.setText(UrbanLaw.MainCatalog.get(i));
             valueTV.setPadding(10, 10, 10, 0);
             valueTV.setId(Integer.parseInt(getArguments().getString("pageIndex"))*100+ i); 
             ((LinearLayout) layout).addView(valueTV);

然后我想获取每个 textview 和布局的高度,以便在每个 android 设备中获得更好的视图。我使用以下代码来获取高度和宽度:

    ViewTreeObserver entire = view.getViewTreeObserver();

    entire.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

        @Override
        public void onGlobalLayout() {
            // TODO Auto-generated method stub
             Log.d( getArguments().getString("pageIndex")+" " +view.getWidth() + " x " + view.getHeight(),"width and height");
             viewHeight = view.getHeight();
             Log.d("view height in method", String.valueOf(viewHeight));
             view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
        }
    });

在 ongloballayout() viewheight 是真的,但是当我想使用它时,输出等于 0。如何解决我的问题。我的主要问题是我想将文本添加到我的布局中,以使 textview 高度的总和小于视图高度。

///////////////////////////////////////更新:我想要像这样的东西:

       while( sumHeight < viewHeight)
       { 
         add (textview)
         sumHeight += textHeight
       }
4

1 回答 1

2

尝试给你的 TextView 一些布局参数:

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
valueTV.setLayoutParams(params);

此外,如果您尝试获取视图的高度,则代码中存在错误:

viewHeight = view.getHeight(); // not getWidth()

希望这可以帮助 :)

于 2013-10-23T09:22:08.007 回答