【问题标题】:Align imageview to bottom right in FrameLayout在 FrameLayout 中将 imageview 与右下角对齐
【发布时间】:2016-05-02 17:50:31
【问题描述】:

我正在使用下面的代码将图像视图与 FrameLayout 内的边距为 20,10 的右下角对齐,但它出现在左上角。我哪里出错了?

 ViewGroup.MarginLayoutParams marginParams = new ViewGroup.MarginLayoutParams(refreshBtn.getLayoutParams());
    marginParams.setMargins(0, 0, 20, 10);
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(marginParams);
layoutParams.gravity=Gravity.RIGHT|Gravity.BOTTOM;
refreshBtn.setLayoutParams(layoutParams);

【问题讨论】:

  • 你能发布更多你的代码吗?具体来说,您正在使用的 xml?

标签: android android-layout android-imageview android-framelayout


【解决方案1】:

问题在于您正在更改布局重力,这意味着您将 FrameLayout 定位在右下角。但是,FrameLayout 可能会填满整个屏幕,在这种情况下,布局重力不会真正改变任何东西。想象一本书完全适合放在抽屉里。无论你如何握住抽屉,书都不会在里面移动。

您需要做的是使用 FrameLayout 本身的“setGravity()”方法。这将改变 FrameLayout 内的实际重力。

来源: How to set both gravity and layout gravity of a LinearLayout programatically

【讨论】:

  • 我的框架布局包含许多视图,我只想将此图像视图定位到右下角
  • 您确定要以编程方式将 ImageView 放入右下角吗?使用 XML 将其放在右下角会更容易。
  • 是的,我必须根据要求以编程方式更改边距
  • 你不能在 XML 中定义 ImageView 的布局重力,而是以编程方式设置边距吗?
猜你喜欢
  • 1970-01-01
  • 2020-06-02
  • 1970-01-01
  • 1970-01-01
  • 2011-05-06
  • 2013-05-20
  • 2011-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多