Xamarin.forms: Forms3.5 での ListView のラベル レイアウトの問題

作成日 2019年02月17日  ·  3コメント  ·  ソース: xamarin/Xamarin.Forms

バグ レポートのベスト プラクティス: https://github.com/xamarin/Xamarin.Forms/wiki/Submitting-Issues

説明

ListViewのラベルをAndroidで正しくレイアウトすることはできません。 iOSは大丈夫です。

再現する手順

  1. そのようなxaml
    ```




    マージン="20,0,0,0"
    ShowLabel="true"
    Checked="{結合チェック}"
    OnImg="checked_checkbox.png"
    OffImg="unchecked_checkbox.png"
    Text="{結合ワード}" />



2. the CheckBox code like that:
public CheckBox() {
        this.TapCmd = new Command(() => {
            this.Checked = !this.Checked;

            if (this.CheckChanged != null)
                this.CheckChanged.Invoke(this, new EventArgs());

            if (this.CheckChangedCmd != null && this.CheckChangedCmd.CanExecute(this.Checked))
                this.CheckChangedCmd.Execute(this.Checked);
        });


        StackLayout stackLayout = new StackLayout {
            Orientation = StackOrientation.Horizontal
        };


        TapBinder.SetCmd(stackLayout, this.TapCmd);
        this.Content = stackLayout;

        this.Label = new Label() {
            BackgroundColor = Color.Red,
            BindingContext = this,
            VerticalTextAlignment = TextAlignment.Center,
            HorizontalOptions = LayoutOptions.StartAndExpand
        };
        this.Label.SetBinding(Label.TextProperty, "Text");
        this.Label.SetBinding(Label.IsVisibleProperty, "ShowLabel");

        this.Icon = new Image() {
            WidthRequest = this.Size,
            HeightRequest = this.Size,
            Source = this.OffImg
        };
        stackLayout.Children.Add(this.Icon);
        stackLayout.Children.Add(this.Label);

    }

```

予想される行動

ラベルのテキストは正常に表示できます。

実際の行動

ListView を上下にスクロールすると、一部のラベルのテキストが表示されません。

基本情報

  • 問題のあるバージョン:

=== Mac 用 Visual Studio コミュニティ 2017 ===

バージョン 7.7.4 (ビルド 1)
インストール UUID: 4e60959a-758f-48ce-ae6d-26e15276ea83
GTK+ 2.24.23 (ローリーのテーマ)
Xamarin.Mac 4.4.1.178(マスター/ eeaeb7e6)

Package version: 516000221

=== Mono フレームワーク MDK ===

ランタイム:
モノラル 5.16.0.221 (2018-06/b63e5378e38) (64 ビット)
パッケージバージョン: 516000221

=== NuGet ===

バージョン: 4.8.0.5385

=== .NET Core ===

ランタイム: /usr/local/share/dotnet/dotnet
ランタイム バージョン:
2.1.8
2.1.7
2.1.2
2.1.1
2.0.5
2.0.0
1.1.1
1.0.4
SDK:/usr/local/share/dotnet/sdk/2.1.504/Sdks
SDK バージョン:
2.1.504
2.1.503
2.1.302
2.1.301
2.1.4
2.0.0
1.0.3
MSBuild SDK: /Library/Frameworks/Mono.framework/Versions/5.16.0/lib/mono/msbuild/15.0/bin/Sdks

=== Xamarin.Mac ===

バージョン: 5.2.1.15 (Visual Studio コミュニティ)
ハッシュ: d60abd198
ブランチ:
ビルド日: 2019-02-01 12:23:30-0500

=== Xamarin.Android ===

バージョン: 9.1.8.0 (Visual Studio コミュニティ)
Android SDK: /Users/huangboru/myfile/sdk
サポートされている Android バージョン:
4.2 (API レベル 17)
4.4 (API レベル 19)
5.1 (API レベル 22)
6.0 (API レベル 23)
7.0 (API レベル 24)
7.1 (API レベル 25)
8.0 (API レベル 26)
8.1 (API レベル 27)

SDK ツール バージョン: 26.1.1
SDK プラットフォーム ツール バージョン: 28.0.0
SDKビルドツールバージョン:28.0.3

=== Microsoft モバイル OpenJDK ===

Java SDK: /Users/huangboru/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_1.8.0.9
openjdkバージョン「1.8.0-9」
OpenJDK ランタイム環境 (ビルド 1.8.0-9-microsoft-b00)
OpenJDK 64 ビット サーバー VM (ビルド 25.71-b00、混合モード)

Android Designer EPL コードはここで入手できます。
https://github.com/xamarin/AndroidDesigner.EPL

=== ビルド情報 ===

リリースID:707040001
Git リビジョン: 2a4679454f31c8bb887cfd181ea133c9149d3cad
ビルド日: 2019-01-30 16:18:21+00
ビルドブランチ: release-7.7.4
Xamarin 拡張機能: c8b4305fd4c60b9c25947072eb150fdc3a5aa2b5

スクリーンショット


droid-mainactivity-02172019185656

Label の backgroundColor を設定しましたが、 Label のレイアウトが間違っているために問題が発生しているようです。

droid-mainactivity-02172019193816

複製リンク

アップロードするか、再現ケースへのリンクを提供してください
listview Android needs-info ❓ needs-repro ❔ bug

最も参考になるコメント

Xamarin.Forms のバージョンを 3.5.169047 に更新すると、問題はなくなりました。

全てのコメント3件

@suihanhbrこの問題を示すサンプル プロジェクトを添付して

ここにサンプルがあります:
TestLabelProblem.zip

これが最初の UI です。 テキストが正常に表示されません。
screenshot_2019-02-20-10-10-28-963_com suihan testlabelproblem

listView を高速で何度もスクロールすると、次のようになります。

screenshot_2019-02-20-10-10-42-816_com suihan testlabelproblem

@samhouts

Xamarin.Forms のバージョンを 3.5.169047 に更新すると、問題はなくなりました。

このページは役に立ちましたか?
0 / 5 - 0 評価