Android LinearLayout动态添加View时如何设置View间的间距
阿神
阿神 2017-04-17 13:35:02
0
4
747

在一个LinearLayout中动态添加View(Java代码实现):

for (int i = 0; i < mListViews.size(); i++) {
                View v = inflater.inflate(ovalLayoutId, null);
                ovalLayout.addView(v);
            }

其中OvalLayout是一个居中对齐的LinearLayout,ovalLayoutId是要添加的View。如何才能设置这些View之间的间隔(水平方向)?

阿神
阿神

闭关修行中......

全部回覆(4)
巴扎黑

LinearLayout是垂直的:

androidandroid:layout_marginBottom="Xdip" and/or android:layout_marginTop="Xdip" 

LinearLayout是水平的:

androidandroid:layout_marginLeft="Xdip" and/or android:layout_marginRight="Xdip" 

X 是數值, 例如: 3 .

希望有幫助.

洪涛

LinearLayout也有pider,類似ListView,給你的ovalLayout設定pider,然後設定pider的顯示方式是middle就行了:

mContainer = new LinearLayout(getContext());
mContainer.setOrientation(LinearLayout.VERTICAL);
mContainer.setpiderDrawable(getContext().getResources().getDrawable(R.drawable.common_pider_black_10));
mContainer.setShowpiders(LinearLayout.SHOW_pIDER_MIDDLE);
伊谢尔伦

有很多種方法的,隨便說兩種:
1.透過給view設定LayoutParams,在addView的時候,將layoutParams也作為入參就可以了;
2.可以再view後面或下面加上一個佔有一定寬度但背景透明的BlankView,這樣view之間就透過BlankView隔開了。

PHPzhong

自己補充Java程式碼寫法:

for (int i = 0; i < mListViews.size(); i++) {
                View v = inflater.inflate(ovalLayoutId, null);
                if(i==0){
                    ovalLayout.addView(v);//第一个view不用设置间隔
                }
                else {
                    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
                        LinearLayout.LayoutParams.WRAP_CONTENT);
                    lp.setMargins(15,0,0,0);
                    v.setLayoutParams(lp);
                    ovalLayout.addView(v);
                }

            }
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板