Android LinearLayout动态添加View时如何设置View间的间距
阿神
阿神 2017-04-17 13:35:02
[Android讨论组]

在一个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 .

希望能有帮助.

PHP中文网

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隔开了。

PHPz

自己补充一下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);
                }

            }
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号