我在代码方面遇到一些奇怪的问题(我在这里只写了一些重要的行):
onPostExecute()
此后,我仅看到RelativeLayout中的最后一张图像。即使我将图像数量增加到10个(例如),也没有任何反应-我只能看到LAST图像,但是如果我添加两个或三个具有相同参数但不从数组(Image [])获得的视图,则一切正常。
问题:是否有可能(在xmarin中)使用数组元素动态添加布局视图?如果可能的话-我在做什么错?
答案 0 :(得分:0)
这是因为您使用的是不带布局参数规则的RelativeLayout将每个后续图像放置在前一个图像下方。并且,如果没有它,图像将彼此堆叠。恰好是您最大的图像是屏幕上放置的最后一个图像,并且遮盖了其他图像。
这是我在Xamarin.Android中使用ImageView数组和适当的LayoutRules展示其正常工作的示例:
SELECT
MONTHNAME(birthdatetr) AS Month_of_Birth,
MONTH(birthdatetr) AS number_of_month_of_birth,
COUNT(*) AS Total,
(select count(*) FROM tng_people
WHERE month(birthdatetr) > 0
GROUP BY month(birthdatetr)
ORDER BY count(*) DESC
limit 1) as birthmax
FROM
tng_people
WHERE
MONTH(birthdatetr) > 0
GROUP BY
number_of_month_of_birth
ORDER BY
number_of_month_of_birth
输出
希望这会有所帮助!
答案 1 :(得分:0)
这是Android的解决方案。 当然,如果我们使用ImageView,我们将使用.Id字段来生成用于视图识别的唯一ID。
不同的代码,没有LayoutParameter,但是具有单独的变量,在所有手机上均正常工作:
Image img1, img2, img3, img4;
img1 = new Image();
img2 = new Image();
img3 = new Image();
img4 = new Image();
setImageParm(img1, 0, localPathyn);
setImageParm(img2, 1, localPathyn);
setImageParm(img3, 2, localPathyn);
setImageParm(img4, 3, localPathyn);
void setImageParm( Image im, int i, string localPathyn) {
im.Aspect = Aspect.AspectFit;
im.HorizontalOptions = LayoutOptions.Center;
im.VerticalOptions = LayoutOptions.Center;
im.Source = ImageSource.FromFile(localPathyn);
im.HeightRequest = 70;
r.Children.Add(im, ()=> new Rectangle(width* i * 0.1f, height* i * 0.1f, 70f, 70f));
}
我认为Children.Add方法使用x:Name标识,该标识在xamarin代码中无法更改,我们必须分别为每个平台编写此代码吗?