Sediakan properti terlampir sehingga pengguna dapat lebih langsung menentukan apakah sesuatu terlihat di Flyout atau di TabBar.
Kita harus menambahkan opsi sehingga ketika pengguna menggunakan FlyoutDisplayOptions="AsMultipleItems"
sehingga mereka dapat memilih untuk menampilkan induknya sebagai Header. Dengan kontrol ekspansi, kami juga dapat menambahkannya sebagai pengaturan.
```C#
FlyoutItem.IsVisible // Properti Terlampir BP
Tab.IsVisible // Properti Terlampir BP
BaseShellItem.IsVisible // BP (bukan properti terlampir)
## Examples BaseShellItem.IsVisible
If you set BaseShellIitem IsVisible to false it won't show up in the Flyout or on any of the tabs
## Examples Tab.IsVisible
```xaml
<TabBar>
<Tab Title="Tab 1">
<ShellContent Title="Top Tab 1" />
<ShellContent Title="Top Tab 2" Tab.IsVisible="false"/>
<ShellContent Title="Top Tab 3" />
</Tab>
<Tab Title="Tab 2" Tab.IsVisible="false">
</Tab>
</TabBar>
Pengguna menginginkan Flyout yang tidak mencerminkan tab apa pun di layar.
<MenuItem title="item 1 "/>
<MenuItem title="item 2" />
<MenuItem title="item 3" />
<TabBar Shell.FlyoutBehavior="Flyout" FlyoutItem.IsVisible="False">
<Tab>
</Tab>
</TabBar>
Membuat 3 Item Flyout
<FlyoutItem title="item 1 " />
<FlyoutItem title="item 2" />
<ShellContent title="Content" FlyoutItem.IsVisible="False" />
Membuat 2 Item Flyout bahkan jika Anda menggunakan elemen ShellContent
Kasus penggunaan yang saya pikirkan adalah memiliki item di menu Hamburger bagi pengguna untuk meningkatkan aplikasi ke Premium. Setelah pengguna memutakhirkan, item tersebut seharusnya tidak lagi terlihat.
Orang tua: #2415
Ada pembaruan tentang ini?
@PureWeen Saya melihat Anda menggunakan ini di Xam Dev Summit, apakah ini dalam Pra atau belum?
Kasus penggunaan lain yang dimaksudkan adalah di mana satu set fitur (sering digunakan) harus terlihat di bilah tab bawah dan set fitur lainnya (pengaturan, pemulihan pembelian, bantuan, tentang, dll.) harus dapat diakses dari menu hamburger. Jika ini sudah memungkinkan, beri tahu saya.
Bisakah kami mendapatkan pembaruan tentang ini? (sangat, sangat menginginkan ini!)
menabrak
Sangat membutuhkan ini
Ada pembaruan tentang ini?
Perubahan apapun? Kami sangat membutuhkan ini.
Ada pembaruan tentang ini?
Shell tampaknya tidak berguna kecuali Anda sedang membangun aplikasi yang sangat kecil. Tanpa ini, kami tidak dapat mengatur izin atau menyembunyikan halaman yang tidak kami inginkan dengan cepat. Bagaimana ini bukan prioritas sekarang?
Anda benar @brepetti
Saya ingin tahu apakah saya kehilangan sesuatu di sini ...
@rodrigojuarez @brepetti
Bagian lucunya adalah di XDS tahun lalu dibahas sebagai item yang akan segera hadir... Sampai pada titik di mana mereka menunjukkannya.
Saya pikir ini mungkin akhirnya menjadi pemblokir karena cara menangani tumpukan navigasi. Karena saya tahu bahwa contoh yang ditampilkan di XDS menggunakan sebagian besar tumpukan navigasi khusus/dibangun kembali.
Saya berhasil membuatnya bekerja untuk Tab Top TabBar dengan solusi manual dengan membuat item ShellContent secara manual (menambahkan, menghapus). Di Xamarin.Forms 4.6 sekarang juga berfungsi untuk iOS (baru saja diperbaiki 1 hari yang lalu di 4.6).
Haruskah bekerja untuk Menu Hamburger juga?
@malte1989 Ya kita berbicara tentang item shell alias sesuatu yang ada di pohon visual shell.
@malte1989 dapatkah Anda memberikan beberapa contoh kode?
@malte1989 dapatkah Anda memberikan beberapa contoh kode?
Tentu, saya akan memposting kode untuk solusi tabbar saya besok.
@Jakar510
AppShell.xaml
<TabBar Route="tabBar">
<Tab
x:Name="myTab"
Route="tab1"
Icon="tab_icon1.png">
<ShellContent
x:Name="shellStart"
Route="route1A"
Title="title"
ContentTemplate="{DataTemplate view:Page1A}" />
</Tab>
<Tab
Route="tab2"
Icon="tab_icon2.png">
<ShellContent
Route="route2"
Title="title2"
ContentTemplate="{DataTemplate view:Page2}" />
</Tab>
</Tab>
<Tab
Route="tab3"
Icon="tab_icon3.png">
<ShellContent
Route="route3"
Title="title3"
ContentTemplate="{DataTemplate view:Page3}" />
</Tab>
</TabBar>
AppShell.xaml.cs
public ShellContent shell0;
public ShellContent shell1;
public ShellContent shell2;
public ShellContent shell3;
public static Tab tabLocal;
konstruktor
tabLocal = myTab;
shell0 = shellStart;
shell1 = new ShellContent()
{
Content = new Page1B(),
Title = "",
Route = ""
};
shell2 = .... Page1C() ...
shell3 = .... Page1D() ...
...
Beralih halaman 0 ke 1
AppShell.tabLocal.Items.Add(shell1);
AppShell.tabLocal.Items.Remove(shell0);
Mungkin Anda memerlukan dua metode ini untuk menangani navigasi Anda
protected async override void OnNavigating(ShellNavigatingEventArgs args)
protected override void OnNavigated(ShellNavigatedEventArgs args)
Saya harap ini membantu Anda. Tolong beri saya catatan jika ini berhasil untuk Anda.
Saya akan mengerjakan ini untuk 4.7/4.8
Saya memperbarui spek jika ada yang ingin berkomentar
@PureWeen Tidak, tapi saya harap ketika Anda mulai mengerjakan ini, Anda memposting aliran kedutan sehingga kami dapat memastikan untuk mendengarkan 👍
Saya akan mengerjakan ini untuk 4.7/4.8
Saya memperbarui spek jika ada yang ingin berkomentar
Maaf untuk pertanyaan bodoh: di mana saya dapat menemukan dan membaca spesifikasinya?
@narandini Saya baru saja memperbarui deskripsi tentang masalah ini dengan spesifikasi
Ya terima kasih!
Saya percaya saya menemukan solusi untuk ini (untuk saat ini).
Melakukan hal ini:
beri nama flyoutite atau item Anda, mis
<FlyoutItem Title="Self Review" x:Name="fiSelf">
<FlyoutItem.Icon>
<FontImageSource FontFamily="{StaticResource sapcIconFont}" Glyph="{StaticResource IconUser}" Color="{StaticResource IconColor}"/>
</FlyoutItem.Icon>
<ShellContent>
<viewsAssess:StartSelfPage />
</ShellContent>
</FlyoutItem>
timpa OnBindingContextChanged di AppShell.cs , dan tambahkan kode untuk memeriksa kondisi untuk disembunyikan dan ditampilkan lalu panggil metode Clear pada properti Items dari flyitem
protected override void OnBindingContextChanged()
{
base.OnBindingContextChanged();
if(App.IsIntern)
{
fiAssess.Items.Clear();
fiPeer.Items.Clear();
fiSelf.Items.Clear();
fiVerifications.Items.Clear();
}
}
bekerja untuk saya
ditutup oleh #10980
Ini masih berperilaku aneh, setiap kali kita secara dinamis mengubah properti IsVisible pada BaseShellItem, setiap saat gaya ShellContent akan hilang. Mendorong halaman di atas konten shell dan kemudian muncul tampaknya memperbaikinya.
Contohnya adalah memiliki 2 halaman, konten Shell X memiliki tombol yang mengubah properti boolean yang diikat ke properti IsVisible pada konten Shell Y
@GeorgeVelikov dapatkah Anda mencatat masalah?
Komentar yang paling membantu
Bisakah kami mendapatkan pembaruan tentang ini? (sangat, sangat menginginkan ini!)