1

出于某种目的,我想定位SearchBarStackLayoutOrientation内部Horizontal并为其添加填充,StackLayout但我发现它SearchBar占用了所有宽度空间,如第二个所示,SearchBar而当OrientationVertical正常工作时,SearchBar如下图所示:

在此处输入图像描述

这是两个StackLayouts的代码:

    <StackLayout Orientation="Vertical" Padding="100,0,100,0">
        <SearchBar/>
    </StackLayout>

    <StackLayout Orientation="Horizontal" Padding="100,0,100,0">
        <SearchBar/>
    </StackLayout>

我还尝试将 Horizo​​ntal-OrientatedStackLayout放入 Vertcal-OrientatedStackLayout中,如下面的代码所示:

    <StackLayout Orientation="Vertical" Padding="100,0,100,0">
        <StackLayout Orientation="Horizontal">
            <SearchBar/>
        </StackLayout>
    </StackLayout>

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

4

1 回答 1

1

原因: 当你在 中添加一个 searchBar 时stackLayoutstackLayout不会使子视图适合大小。所以尽管你设置了padding.The 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> 
于 2018-12-17T07:50:36.470 回答