2017-09-01 9 views
0

Xamarin.Formsを使用すると、このようなレイアウトをどのように達成できますか?これらのカスタムセルをTableViewに追加するにはどうすればよいですか?

enter image description here

私は灰色の背景上のテキストのヒントについて話している:

...共有するためのパーソナルホットスポットに

電源を入れ、私はListViewかに追加できるすべてのTableViewは標準ViewCellsで、それらはすべてセパレータと白地でレンダリングされます。

このレイアウトは、私は、標準StackLayoutに(サンプル画像でのWi-Fiのパスワードのような)ViewCellをレンダリングすることができますどのように、TableViewまたはListViewを使用してできない場合は?

答えて

1

TableViewには、アウトオブザボックスViewCellがあるにもかかわらず、自分で実装することができます。明らかにTextCellはありますが、フォントサイズなどを指定することはできません。

あなたはこのような何かを行うことができます:

<?xml version="1.0" encoding="UTF-8"?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="DemoTableView.TablePage" Title="TableView"> 
    <ContentPage.Content> 
     <TableView Intent="Settings"> 
      <TableRoot> 
       <TableSection> 
        <SwitchCell Text="Personal Hotspot" /> 
        <ViewCell> <!-- Simple text --> 
         <Label Text="Turn on personal hotspot..." FontSize="Small" ForegroundColor="Gray" /> 
        </ViewCell> 
        <ViewCell> <!-- More complex cell --> 
         <StackLayout Orientation="Horizontal> 
          <Image Source="someicon" /> 
          <StackLayout> 
           <Label Text="TO CONNECT USING WIFI" FontSize="Large"/> 
           <Label Text="Something more" FontSize="Small" /> 
          </StackLayout> 
         </StackLayout> 
        </ViewCell> 
       </TableSection> 
      </TableRoot> 
     </TableView> 
    </ContentPage.Content> 
</ContentPage> 

これはちょうど簡単な例を急いで書かれているが、あなたのアイデアを得ます。また、ViewCellクラスから継承して独自のセルをプログラムで定義し、TableViewで表示することもできます。

Here's more公式ドキュメントのカスタムセルについて


編集:あなたのコメントを1として、我々はテキストのみの細胞に選択を無効にするには、プラットフォーム固有のコードにビットを掘るする必要があります。

[assembly: ExportCell(typeof(YourCell), typeof(YourCellRenderer))] 
namespace YourProject.iOS 
{ 
    public class YourCellRenderer : ViewCellRenderer 
    { 
     public override UITableViewCell GetCell (Cell item, UITableView tv) 
     { 
      var cell = base.GetCell (item, tv); 
      cell.SelectionStyle = UITableViewCellSelectionStyle.None; 
      return cell; 
     } 
    } 
} 
+0

おかげで、しかしViewCellを使用すると、2つの欠点があります:あなたは、iOS用の次​​のカスタムレンダラでカスタムViewCell実装を作成する必要がありますから、a)は、私はまだ、セルをタップ上のホバー効果を得ること、b)セパレータ上記のSwitchCellは、以下にさらに多くのオプションがあると通常通りに縮小します。どのようにこれらの問題を克服するための任意のアイデア? – Physikbuddha

+0

@Physikbuddhaああ、そうは思わなかった。私は自分の答えを更新しました。しかし、確かにbについてはわからない。 – hankide

関連する問題