所以我在ImageView
中以编程方式创建了Activity
我想在ImageView
之一的底部添加RelativeLayout
。
这就是我的尝试:
// creating new ImageView
ImageView shadowView = new ImageView (contextPara);
shadowView.SetBackgroundResource (Resource.Drawable.bottomBar_Shadow);
shadowView.SetScaleType (ImageView.ScaleType.FitXy);
// creating ImageView LayoutParams
WindowManagerLayoutParams imgViewLayoutParams = new WindowManagerLayoutParams ();
imgViewLayoutParams.Width = ViewGroup.LayoutParams.MatchParent;
imgViewLayoutParams.Height = (int)imgViewHeight;
imgViewLayoutParams.Gravity = GravityFlags.Bottom;
// Adding ImageView to RelativeLayout
listViewRelativeLayout.AddView (shadowView, imgViewLayoutParams);
我的问题是这会将ImageView
添加到RelativeLayout
的TOP,而不是底部。
我也尝试了以下内容:
在我致电AddView
并添加ImageView
后,我设置Y
的{{1}}位置。
这实际上有效。它将ImageView
向下移动,但我不确定向下移动多少。 ImageView
大小不是绝对的。
RelativeLayout
如何将其置于// this moves the ImageView down 100px.
shadowView.SetY (100f);
的底部?
请注意:我只能进行数学计算(RelativeLayout
身高 - RelativeLayout
身高),因为ImageView
身高始终为RelativeLayout
,直到{{1}完成。
我的其他选择是什么?
感谢您的时间。
答案 0 :(得分:1)
可能的解决方案:
1
考虑在RelativeLayout XML中放置一个ImageView。
您可以使用
访问Activity / Fragment中的此ImageView ImageView mImageView = (ImageView) view.findViewById(R.id.imageView);
您可以将起始可见性设置为mImageView.setVisibility(View.GONE)
,并在以后显示ImageView mImageView.setVisibility(View.VISIBLE)
;
2
您可以将子布局(LinearLayout)添加到现有的RelativeLayout,此子布局可以通过XML放置在RelativeLayout的底部。
在Activity / Fragment中,您可以通过其ID来定位该子布局(linearLayout),然后以编程方式将ImageView添加到该布局。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.modup.fragment.FeedFragment">
<!-- TODO: Update blank fragment layout -->
<LinearLayout>
android:id="@+id/linearLayout"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
</LinearLayout>
</RelativeLayout>
答案 1 :(得分:0)
我找到了办法!
使用WindowManagerLayoutParams
完成工作,而不是使用RelativeLayout.LayoutParams
来设置LayoutParameters。
以下是:
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams (RelativeLayout.LayoutParams.MatchParent, (int)imgViewHeight);
layoutParams.AddRule (LayoutRules.AlignParentBottom);
AlignParentBottom
完成这项工作!