Android:在向其添加ImageView时增加线性布局的高度

时间:2014-03-24 15:00:36

标签: android android-layout

我试图通过拖放到LinearLayout来添加ImageViews。添加5个ImageView后,LinearLayout大小应该增加,ImageViews应该添加到LinerLayout的Next行。基本上我想在LinearLayout中添加5组ImageView。第一行中的前5行,第二行中的后5行等...

任何想法如何实现这一目标。我以下面的方式尝试了它,但是在增加LinerLayout的高度后没有添加图像视图。

case DragEvent.ACTION_DROP:

            if(v == findViewById(R.id.dragDropHereLinear)) {
                View view = (View) event.getLocalState();
                ViewGroup viewgroup = (ViewGroup) view.getParent();
                //viewgroup.removeView(view);                   

                ImageView iv = new ImageView(getApplicationContext());


                LinearLayout containView = (LinearLayout) v;

                TextView textView = (TextView) findViewById(R.id.tvDragDropHere);

                if(count > 4 ) {
                    count = 0;
                    containView.getLayoutParams().height = containView.getLayoutParams().height + 200;
                    containView.requestLayout();
                    //invalidate();
                }                   

                iv.setPadding(5, 0, 5, 0);
                containView.addView(iv);
                iv.setVisibility(View.VISIBLE);
                view.setVisibility(View.VISIBLE);
                count++;

            } else {
                View view = (View) event.getLocalState();
                view.setVisibility(View.VISIBLE);
                Context context = getApplicationContext();
                Toast.makeText(getApplicationContext(), "problem in dropping the image", 
                        Toast.LENGTH_LONG).show();
            }
            break;

2 个答案:

答案 0 :(得分:0)

您只需设置布局高度=" match_parent"在您的xml文件中,或者您可以像这样动态设置.....

 LayoutParams layoutParams = (LayoutParams) layoutname.getLayoutParams();
 layoutParams.width = FrameLayout.LayoutParams.FILL_PARENT;
 layoutParams.width = FrameLayout.LayoutParams.WRAP_CONTENT;

答案 1 :(得分:0)

根据您的要求,我建议您使用 FlowLayout

FlowLayout 是扩展线性布局,当当前行中没有位置时,它会包装其内容。 你可以找到here