停止视图在相对布局中水平重叠
Posted
技术标签:
【中文标题】停止视图在相对布局中水平重叠【英文标题】:Stop views overlapping horizontally in a relative layout 【发布时间】:2016-04-28 15:57:40 【问题描述】:作为日历的一部分,我有两个视图,一个日视图和一个事件视图。我希望我的事件以宽度填充日视图(这正在工作),但是当我在相同的位置/时间添加另一个时,我希望它们分割宽度......我正在使用 java.util 动态添加我的事件。有没有我可以使用的属性使视图不重叠?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/dayView"
android:layout_
android:layout_
android:background="@drawable/day_view">
</RelativeLayout>
.
<?xml version="1.0" encoding="utf-8"?>
<ie.test.calendar.CalendarEventView
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:id="@+id/eventView"
android:background="@drawable/event_view"
android:layout_
android:layout_>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/eventTextView"
android:layout_
android:layout_
android:paddingTop="3dp"
android:paddingBottom="5dp"
android:paddingLeft="5dp"
android:paddingRight="3dp"
android:textAppearance="@android:style/TextAppearance.Medium"
android:textColor="@android:color/white"/>
</ie.test.calendar.CalendarEventView>
【问题讨论】:
【参考方案1】:我认为您需要使用 Linier 布局作为水平方向的父视图。并且还使用宽度的重量概念。它将根据子数量划分您的父视图
【讨论】:
【参考方案2】:看看RelativeLayout.LayoutParams
您可以在运行时使用 ID 设置规则。
layoutparams.addRule(RelativeLayout.ALIGN_RIGHT, R.id.id1)
虽然我认为使用LinearLayout
会简单得多。
【讨论】:
所以我必须在插入第一个事件时知道有一个事件要添加到同一位置??然后为它腾出空间?以上是关于停止视图在相对布局中水平重叠的主要内容,如果未能解决你的问题,请参考以下文章