如何在水平StackLayout内的SearchBar中添加填充?

时间:2018-12-16 15:31:09

标签: xamarin.forms searchbar stacklayout

出于某种目的,我想将SearchBar放在StackLayoutOrientation的{​​{1}}内,并向该Horizontal添加填充,但是我发现{{ 1}}占据了第二个StackLayout中显示的所有宽度空间,而当SearchBarSearchBar时,它正常工作,如下图的第一个Orientation所示:

enter image description here

这是两个Vertical的代码:

SearchBar

我还尝试将水平方向的StackLayout放入垂直方向的 <StackLayout Orientation="Vertical" Padding="100,0,100,0"> <SearchBar/> </StackLayout> <StackLayout Orientation="Horizontal" Padding="100,0,100,0"> <SearchBar/> </StackLayout> ,如以下代码所示:

StackLayout

但这也无济于事,那么如何解决该问题呢?

1 个答案:

答案 0 :(得分:1)

原因:stackLayout中添加searchBar时,stackLayout不会使子视图适合大小。因此,尽管您设置了padding,但searchBar仍将超出stackLayout的边界。

解决方案:

将srachBar放在Grid中。

<StackLayout  Orientation="Horizontal"  Padding="100,0,100,0">
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="*" /> 
    </Grid.RowDefinitions>

   <Grid.ColumnDefinitions>
      <ColumnDefinition Width="175" />                   
   </Grid.ColumnDefinitions>

   <SearchBar Grid.Row="0" Grid.Column="0" />

  </Grid>

</StackLayout>