قم بتوفير الخصائص المرفقة بحيث يمكن للمستخدمين تحديد ما إذا كان هناك شيء ما مرئيًا في Flyout أو في TabBar بشكل مباشر.
يجب أن نضيف خيارات لذلك عندما يستخدم المستخدمون FlyoutDisplayOptions="AsMultipleItems"
حتى يتمكنوا من اختيار عرض الأصل كرأس. من خلال التحكم في التوسيع ، يمكننا أيضًا إضافة ذلك كإعداد أيضًا.
ج #
FlyoutItem.IsVisible // خاصية BP المرفقة
Tab.IsVisible // خاصية BP المرفقة
BaseShellItem.IsVisible // BP (خاصية غير مرفقة)
## 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>
يريد المستخدمون Flyout لا يعكس أيًا من علامات التبويب الموجودة على الشاشة.
<MenuItem title="item 1 "/>
<MenuItem title="item 2" />
<MenuItem title="item 3" />
<TabBar Shell.FlyoutBehavior="Flyout" FlyoutItem.IsVisible="False">
<Tab>
</Tab>
</TabBar>
يعرض 3 عناصر منبثقة
<FlyoutItem title="item 1 " />
<FlyoutItem title="item 2" />
<ShellContent title="Content" FlyoutItem.IsVisible="False" />
يعرض عنصرين منبثقة حتى إذا كنت في عنصر ShellContent
حالة الاستخدام التي أفكر بها هي أن يكون لديك عنصر في قائمة Hamburger ليقوم المستخدم بترقية التطبيق إلى Premium. بمجرد قيام المستخدم بترقية العنصر ، يجب ألا يكون مرئيًا بعد ذلك.
الأب: # 2415
أي تحديث على هذا؟
@ PureWeen رأيتك تستخدم هذا في Xam Dev Summit ، هل هذا في ما قبل أو أي شيء حتى الآن؟
حالة أخرى للاستخدام المقصود هي حيث يجب أن تكون مجموعة واحدة من الميزات (المستخدمة بشكل متكرر) مرئية على شريط علامات التبويب السفلي ويجب أن تكون مجموعة أخرى من الميزات (الإعدادات ، استعادة المشتريات ، المساعدة ، حول ، إلخ) يمكن الوصول إليها من قائمة الهامبرغر. إذا كان هذا ممكنًا بالفعل ، فيرجى إبلاغي بذلك.
هل يمكننا الحصول على تحديث عن هذا من فضلك؟ (حقا ، حقا تريد هذا!)
صدم
حقا بحاجة الى هذا
أي تحديث على هذا؟
أي تحديث؟ نحن حقا بحاجة إلى هذا.
أي تحديث على هذا؟
يبدو أن شل عديمة الفائدة إلى حد كبير إلا إذا كنت تقوم ببناء تطبيق صغير جدًا. بدون هذا لا يمكننا تعيين أذونات أو إخفاء الصفحات التي لا نريدها أثناء التنقل. كيف هذه ليست أولوية الآن؟
أنت محقbrepetti
أتساءل عما إذا كنت أفتقد شيئًا ما هنا ...
تضمين التغريدة
الجزء المضحك في XDS العام الماضي تمت مناقشته كعنصر كان سيصدر قريبًا ... إلى النقطة التي أظهروا فيها ذلك.
أعتقد أن هذا ربما انتهى به الأمر إلى كونه مانعًا بسبب كيفية تعامله مع مكدس التنقل. لأنني أعلم أن المثال المعروض في XDS كان يستخدم في الغالب مكدس تنقل مخصص / معاد بناؤه.
تمكنت من تشغيله مع TabBar Top Tabs باستخدام حل يدوي عن طريق إنشاء عناصر ShellContent يدويًا (الإضافة والإزالة). في Xamarin.Forms 4.6 ، يعمل الآن أيضًا لنظام iOS (تم إصلاحه منذ يوم واحد فقط في 4.6).
هل يجب أن تعمل في قائمة همبرغر أيضًا؟
@ malte1989 نعم نحن نتحدث عن عنصر قذيفة ويعرف أيضًا باسم شيء موجود على شجرة بصرية الصدفة.
@ malte1989 هل يمكنك تقديم بعض الأمثلة على الكود؟
@ malte1989 هل يمكنك تقديم بعض الأمثلة على الكود؟
بالتأكيد ، سأقوم بنشر رمز حل tabbar غدًا.
@ 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;
البناء
tabLocal = myTab;
shell0 = shellStart;
shell1 = new ShellContent()
{
Content = new Page1B(),
Title = "",
Route = ""
};
shell2 = .... Page1C() ...
shell3 = .... Page1D() ...
...
تبديل الصفحة من 0 إلى 1
AppShell.tabLocal.Items.Add(shell1);
AppShell.tabLocal.Items.Remove(shell0);
ربما تحتاج هاتين الطريقتين للتعامل مع التنقل الخاص بك
protected async override void OnNavigating(ShellNavigatingEventArgs args)
protected override void OnNavigated(ShellNavigatedEventArgs args)
آمل أن يكون هذا يساعدك. واسمحوا لي أن أذكر إذا كان هذا يعمل من أجلك.
سأعمل على هذا من أجل 4.7 / 4.8
لقد قمت بتحديث المواصفات إذا كان أي شخص يريد التعليق
PureWeen لا ولكني آمل عندما تعمل على هذا أن تنشر دفق Twitch حتى نتمكن من التأكد من ضبطه 👍
سأعمل على هذا من أجل 4.7 / 4.8
لقد قمت بتحديث المواصفات إذا كان أي شخص يريد التعليق
آسف على السؤال الغبي: أين أجد المواصفات وأقرأها؟
ncarandini لقد قمت للتو بتحديث الوصف الخاص بهذه المشكلة بالمواصفات
نعم شكرا!
أعتقد أنني وجدت حلاً لهذا (في الوقت الحالي).
افعل هذا:
أعطِ flyoutem أو العناصر اسمًا ، على سبيل المثال
<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>
تجاوز OnBindingContextChanged في AppShell.cs ، وأضف رمزًا للتحقق من الشرط لإخفائه وإظهاره ، ثم استدع طريقة المسح في خاصية العناصر في flyitem
protected override void OnBindingContextChanged()
{
base.OnBindingContextChanged();
if(App.IsIntern)
{
fiAssess.Items.Clear();
fiPeer.Items.Clear();
fiSelf.Items.Clear();
fiVerifications.Items.Clear();
}
}
يعمل لدي
تم إغلاقه بواسطة # 10980
لا يزال هذا يتصرف بشكل غريب ، فكلما قمنا بتغيير الخاصية IsVisible ديناميكيًا على BaseShellItem ، فسيتم فقد تصميم ShellContent مرة تلو الأخرى. يبدو أن دفع صفحة أعلى محتوى الصدفة ثم ظهورها يؤدي إلى إصلاحه.
من الأمثلة على ذلك أن يكون لديك صفحتان ، ويحتوي shell content X على زر يغير خاصية منطقية مرتبطة بخاصية IsVisible في محتوى shell Y
GeorgeVelikov هل يمكنك تسجيل مشكلة؟
التعليق الأكثر فائدة
هل يمكننا الحصول على تحديث عن هذا من فضلك؟ (حقا ، حقا تريد هذا!)