こんにちは。
Xamarin.FormsでMaxLinesはありませんので、以下のエフェクトを用いて設定しています。参考
このエフェクトを使って2行表示と全行表示を切り替えたいのですが、切り替えてもラベルの高さがテキストに合わせて伸び縮みしてくれません。SizeToFit()も効いてくれません。なにが原因でしょうか。
###iOS
csharp
1 public class LineBreakLabelEffect : PlatformEffect 2 { 3 protected override void OnAttached() 4 { 5 var label = Control as UILabel; 6 7 if (label == null) { return; } 8 label.LineBreakMode = UILineBreakMode.TailTruncation; 9 label.Lines = 2; 10 label.SizeToFit(); 11 } 12 13 protected override void OnDetached() 14 { 15 var label = Control as UILabel; 16 17 if (label == null) { return; } 18 label.LineBreakMode = UILineBreakMode.WordWrap; 19 label.Lines = 1000; 20 label.SizeToFit(); 21 } 22 }
###Android
csharp
1 public class LineBreakLabelEffect : PlatformEffect 2 { 3 protected override void OnAttached() 4 { 5 var label = Control as TextView; 6 7 if (label == null) { return; } 8 9 label.Ellipsize = Android.Text.TextUtils.TruncateAt.End; 10 label.SetMaxLines(2); 11 } 12 13 protected override void OnDetached() 14 { 15 var label = Control as TextView; 16 17 if (label == null) { return; } 18 label.SetMaxLines(1000); 19 } 20 }
###PCL
csharp
1 if (isOpen) 2 { 3 if (LblBody.Effects.Count > 0) 4 { 5 LblBody.Effects.RemoveAt(0); 6 } 7 } 8 else 9 { 10 LblBody.Effects.Add(Effect.Resolve("Sample.LineBreakLabelEffect")); 11 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/14 02:00
2017/11/15 06:57
2017/11/16 01:40