代码之家  ›  专栏  ›  技术社区  ›  Ahmed Salah

如何在水平堆叠布局中向搜索栏添加填充?

  •  1
  • Ahmed Salah  · 技术社区  · 6 年前

    出于某种目的,我想定位 SearchBar 里面 StackLayout 谁的 Orientation Horizontal 加上填充物 堆栈布局 但我发现 搜索栏 占用所有宽度空间,如秒所示 搜索栏 方向 Vertical 它工作正常,如前所示 搜索栏 下图:

    enter image description here

    这是两者的代码 堆叠布局 S:

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

    我也试着把水平方向 堆栈布局 向垂直方向 堆栈布局 如下代码所示:

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

    但它也没有帮助,那么如何解决这个问题呢?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Lucas Zhang    6 年前

    原因: 在中添加搜索栏时 stackLayout ,请 堆叠布局 不会使子视图适合大小。所以尽管你设置了 padding 。搜索栏仍将超出stacklayout的边界。

    解决方案:

    把横杆放在 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> 
    
    推荐文章