当我尝试向LinearLayout提供负左边距时,我遇到了问题
负余量不会出现。
这是我的代码
HorizontalScrollView hview = new HorizontalScrollView(context); // HorizontalScrollView is the outer view
RelativeLayout.LayoutParams hs_lot_params = new RelativeLayout.LayoutParams(164, 164);
hs_lot_params.setMargins(100, 100, 0, 0); // set the positions
ImageView image = new ImageView(context);
image.setBackgroundResource(R.drawable.leder);
LinearLayout.LayoutParams img_lot_params = new LinearLayout.LayoutParams(164, 164);
img_lot_params.setMargins(0, 0, 0, 0);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(164, 164);
layoutParams.setMargins(-132, 0, 0, 0);
ll.addView(image, img_lot_params);
hview.addView(ll, layoutParams);
注意:我的计划是从左到右滚动图像 首先,图像的左侧部分是隐藏的,可以向右滚动以查看完整图像
答案 0 :(得分:1)
ViewGroup.MarginLayoutParams params =
(ViewGroup.MarginLayoutParams)view.getLayoutParams(); params.topMargin = -100;
答案 1 :(得分:0)
负边距应该适用于LinearLayout
和RelativeLayout
。您可能需要的是使用HorizontalScrollView
或scrollBy(int x, int y)
滚动scrollTo(int x, int y)
以实现" peek并滚动"你描述的效果。
另外请记住,使用原始像素单元通常是个坏主意,因为实际尺寸将取决于屏幕的像素密度。更喜欢dp
测量。