2017-09-29 11 views
0

4つの等しい幅の列でリストビューを作成しようとしています。 私はHorizo​​ntalOptions = "FillAndExpand"を試しています。ラベルのテキストが画面の幅の1/4より広い場合を除いて動作します。 1/4画面に合わせてラベルをトランケートする方法はありますか? 私が持っている唯一のアイデアは、ヘッダーと各行の両方に別々の固定サイズのグリッドです。 、Xamarinフォームの等しい幅+ TailTruncation

  <ListView ItemsSource="{Binding Members}"> 
      <ListView.Header> 
       <StackLayout Orientation="Horizontal"> 
        <Label Text="Experience Level"/> 
        <Label Text="Years of Experience"/> 
        <Label Text="Max Hourly Rate"/> 
        <Label Text="Professional/Consultant"/> 
       </StackLayout> 
      </ListView.Header> 
      <ListView.ItemTemplate> 
       <DataTemplate> 
        <ViewCell> 
         <StackLayout Orientation="Horizontal"> 
          <Label Text="{Binding ExperienceLevelType.Name}" LineBreakMode="TailTruncation" HorizontalOptions="FillAndExpand"/> 
          <Label Text="{Binding YearsOfExperience}" HorizontalOptions="FillAndExpand"/> 
          <Label Text="{Binding HourlyRateMax}" HorizontalOptions="FillAndExpand"/> 
          <Button Text="Search" HorizontalOptions="FillAndExpand"/> 
         </StackLayout> 
        </ViewCell> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
     </ListView> 

screenshot

答えて

1

代わりのGridAbsoluteLayoutを使用することをお勧めします: はここにXAMLです。

<ListView x:Name="listView" ItemsSource="{Binding Members}"> 
    <ListView.Header> 
     <AbsoluteLayout HeightRequest="50" BackgroundColor="Silver"> 
      <Label 
       AbsoluteLayout.LayoutBounds="0,0,.25,1" AbsoluteLayout.LayoutFlags="All" 
       HorizontalOptions="Start" VerticalOptions="Center" 
       LineBreakMode="WordWrap" Text="Experience Level"/> 
      <Label 
       AbsoluteLayout.LayoutBounds=".325,0,.25,1" AbsoluteLayout.LayoutFlags="All" 
       HorizontalOptions="Center" VerticalOptions="Center" 
       LineBreakMode="WordWrap" Text="Years of Experience"/> 
      <Label 
       AbsoluteLayout.LayoutBounds=".65,0,.25,1" AbsoluteLayout.LayoutFlags="All" 
       HorizontalOptions="Center" VerticalOptions="Center" 
       LineBreakMode="WordWrap" Text="Max Hourly Rate"/> 
      <Label 
       AbsoluteLayout.LayoutBounds="1,0,.25,1" AbsoluteLayout.LayoutFlags="All" 
       HorizontalOptions="Start" VerticalOptions="Center" 
       LineBreakMode="WordWrap" Text="Professional/Consultant"/> 
     </AbsoluteLayout> 
    </ListView.Header> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <ViewCell> 
       <AbsoluteLayout> 
        <Label 
         AbsoluteLayout.LayoutBounds="0,0,.25,1" AbsoluteLayout.LayoutFlags="All" 
         HorizontalOptions="Start" VerticalOptions="Center" 
         LineBreakMode="TailTruncation" Text="{Binding ExperienceLevelType.Name}"/> 
        <Label 
         AbsoluteLayout.LayoutBounds=".325,0,.25,1" AbsoluteLayout.LayoutFlags="All" 
         HorizontalOptions="Center" VerticalOptions="Center" 
         LineBreakMode="TailTruncation" Text="{Binding YearsOfExperience}" /> 
        <Label 
         AbsoluteLayout.LayoutBounds=".65,0,.25,1" AbsoluteLayout.LayoutFlags="All" 
         HorizontalOptions="Center" VerticalOptions="Center" 
         LineBreakMode="TailTruncation" Text="{Binding HourlyRateMax}" /> 
        <Button 
         AbsoluteLayout.LayoutBounds="1,0,.25,1" AbsoluteLayout.LayoutFlags="All" 
         HorizontalOptions="Start" VerticalOptions="Center" 
         Text="Search" /> 
       </AbsoluteLayout> 
      </ViewCell> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
関連する問題