Отрицательное поле Android не работает
У меня возникла проблема, когда я пытаюсь дать отрицательное левое поле 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);
Примечание. Мой план состоит в том, чтобы прокрутить изображение слева направо.
Во-первых, левая часть изображения скрыта и может прокручиваться вправо, чтобы увидеть полное изображение
Ответы
Ответ 1
Отрицательные поля должны работать в LinearLayout
и RelativeLayout
. Вам, возможно, понадобится прокрутить HorizontalScrollView
с помощью scrollBy(int x, int y)
или scrollTo(int x, int y)
, чтобы получить описанный вами эффект "peek and scroll".
Также имейте в виду, что использование необработанных пиксельных блоков обычно плохое, поскольку фактический размер будет зависеть от плотности пикселей экрана. Вместо этого следует использовать измерения dp
.
Ответ 2
ViewGroup.MarginLayoutParams params =
(ViewGroup.MarginLayoutParams)view.getLayoutParams(); params.topMargin = -100;