我想做的就是制作这样的布局。
/****************************/
/ /
/ /
/ /
/ Image /
/ /
/ / /******************************/
/ / / Button /
/****************************/ /******************************/
/* TextView */
问题是,按钮和Textview应该位于与图像分开的片段中。我希望按钮将其底部与父活动中的图像对齐,同时在图像下方的同一片段中具有对象。我该怎么做呢?
答案 0 :(得分:0)
我没有您的布局xml或如何在Activity
中处理片段,但以下解决方案应该有效。
使用以下代码中的想法:
int imageFragmentHeight = mImageFragment.getView().getHeight();
// You might have to get the height some other way...
// e.g. using onGlobalLayoutListener
int buttonHeight = //Your button height
//Now position the button & ImageView fragment as required.
mButtonAndImageFragment.getView().setTranslationY((float)(imageFragmentHeight - buttonHeight));
我的代码假设您的Fragments
具有相同的初始top
位置。
如果这对您有用,请告诉我。
答案 1 :(得分:0)
您可以通过一些逻辑轻松完成此操作。只需使用以下步骤:
由于您需要包含与包含Button和TextView的片段并排的图像的片段,请使用水平LinearLayout并通过设置android:layout_weight =" 1"来拆分布局。两个片段。这将在2个片段之间平均分割布局(将比例更改为您想要的任何比例)。
包含Image的片段必须具有ImageView和View元素(对应于空格)。使用LinearLayout作为根元素。将此视图(空白区域)的高度设置为TextView的高度。你应该使用权重来做到这一点。比如说,你给图像一个权重为4并给视图一个权重为1,它们将以4:1的比例分割可用空间(让我们说这一步的总重量是5)
在包含Image的片段中,使用LinearLayout作为根视图。第一个元素是View(对应于空格),然后是Button,然后是TextView。请记住,上一步中片段的总重量为5,上一步中的最后一个元素的权重为1.因此,如果在此步骤中将LinearLayout的权重保持为5并保持最后一个的权重此布局中的TextView为1,然后您将找到按钮,使其底部与步骤2中图像的底部对齐。
注意:步骤3中的元素将在x:y:1中分割 你应该有x + y + 1 = 5,x是视图的权重,y是 按钮的重量。
注意:请记住,权重基本上是百分比 可用空间。因此,您不必严格确保它们 总共5(或任何具体数字) - 我刚刚提到它们 示例