我有两个xml布局文件,第一个是简单的相对布局,其他7个相对布局充当列,7个视图充当分隔符。每个列布局都使用具有多个视图的线性布局,这些视图放在单独的xml文件中作为背景。这是布局:
容器:
<RelativeLayout
android:id="@+id/calendarRelativeLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="0dp" >
<View
android:layout_width="0.5dp"
android:layout_height="match_parent"
android:layout_weight="0"
android:background="@color/Gray"/>
<RelativeLayout
android:id="@+id/sundayRelativeLayout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2" >
<include layout="@layout/day_background" />
</RelativeLayout>
<View
android:layout_width="0.5dp"
android:layout_height="match_parent"
android:layout_weight="0"
android:background="@color/Gray"/>
<RelativeLayout
android:id="@+id/mondayRelativeLayout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2" >
<include layout="@layout/day_background" />
</RelativeLayout>
</RelativeLayout>
背景布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/day_background"
android:orientation="vertical"
android:layout_width="52dp"
android:layout_height="1440dp"
android:background="@color/LightGray">
<View
android:layout_width="fill_parent"
android:layout_height="0.5dp"
android:layout_marginTop="0dp"
android:background="@color/Gray" />
<View
android:layout_width="fill_parent"
android:layout_height="0.5dp"
android:layout_marginTop="59dp"
android:background="@color/Gray" /></LinearLayout>
我缩短了它们,因为它们会很长,所以这就是为什么只有两列。我也不知道为什么编辑器最终切割标签所以我不得不这样说。我正在尝试修改容器代码中的背景布局宽度,但问题是只有第一列背景会发生变化,剩下的就是52dp,不管我做什么。我正在使用它来调整布局宽度:
LinearLayout dayBackground = (LinearLayout) findViewById(R.id.day_background);
dayBackground.getLayoutParams().width = SystemHelper.getDayColumnWidth();
dayBackground.requestLayout();
以下是模拟器的屏幕,它的外观如下: Emulator screen
可能是什么问题?
答案 0 :(得分:0)
我几天前在我的案子中遇到了类似的问题。我有一个imageview
,上面有一些图像。我正在成功运行项目,但是在某些时候我需要更改图像imageview
并向imageview添加一个较小的图像。当我添加它时,我很惊讶旧图像仍然存在于我的图像视图中并且我的新图像(与第一个图像相比较小)显示在旧版的顶部。我尝试了一切从后面删除旧的但是徒劳的,然后我只是删除了 imageview
并且重新创建了它相同的属性和新的形象。幸运的是它对我有用。除了imagview
答案 1 :(得分:0)
Luksprog的建议是正确的。 FindViewById首次出现了day_background布局。所以我修改了代码,在RelativeLayouts上使用了包含day_background布局的findViewById。这是代码:
RelativeLayout sundayRelativeLayout = (RelativeLayout) findViewById(R.id.sundayRelativeLayout);
LinearLayout sundayDayBackground = (LinearLayout)sundayRelativeLayout.findViewById(R.id.day_background);
RelativeLayout mondayRelativeLayout = (RelativeLayout) findViewById(R.id.mondayRelativeLayout);
LinearLayout mondayDayBackground = (LinearLayout)mondayRelativeLayout.findViewById(R.id.day_background);