Как добавить отступы в SearchBar внутри горизонтального StackLayout? - PullRequest
0 голосов
/ 16 декабря 2018

Для какой-то цели я хочу поместить SearchBar внутри StackLayout, чей Orientation равен Horizontal, и добавить к этому отступу StackLayout, но я обнаружил, что SearchBar занимает все пространство ширины, как показано во второмSearchBar, когда Orientation равен Vertical, он работает нормально, как показано на первом SearchBar следующем изображении:

enter image description here

Здеськод для обоих StackLayout s:

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

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

Я также пытался поместить горизонтально ориентированную StackLayout в вертикально ориентированную StackLayout, как показано в коде ниже:

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

Но это тоже не помогает, так как решить эту проблему?

1 Ответ

0 голосов
/ 17 декабря 2018

Причина: Когда вы добавляете строку поиска в stackLayout, stackLayout не позволит подвиду соответствовать размеру.Таким образом, хотя вы устанавливаете padding. Панель поиска будет по-прежнему за границей 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> 
...