Image shows versions 7.1 and 4.4,the top two images are the default ones, to the bottom two we added some customization ,see description我可以在Xamarin.Forms中爲Android 4.4的漢堡包圖標設置填充嗎?
我想實現的是,在Android 4.4的漢堡包按鈕在前面的空間,使其不從動作條/屏(很像7.1的邊緣右側啓動,請參閱屏幕截圖)。我可以在漢堡按鈕上添加填充嗎?我正在Xamarin Studio中使用Xamarin.Forms。
當我們向操作欄添加一個自定義視圖時,問題似乎更糟,它將漢堡包按鈕設置爲更多左邊我認爲,並不完全適合屏幕,並以某種方式「切斷它」。
這是我們如何將自定義視圖添加到操作欄的相關部分。我們使用自定義NavigationRenderer執行此操作,並從代碼執行UI。
actionBar.SetDisplayShowCustomEnabled(true);
LinearLayout linearLayout = new LinearLayout(activity);
linearLayout.SetGravity(GravityFlags.CenterVertical);
LinearLayout.LayoutParams textViewParameters = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.MatchParent);
switch (activity.Resources.DisplayMetrics.DensityDpi)
{
case DisplayMetricsDensity.Xhigh:
textViewParameters.RightMargin = (int)(48 * activity.Resources.DisplayMetrics.Density);
break;
case DisplayMetricsDensity.Xxhigh:
textViewParameters.RightMargin = (int)(64 * activity.Resources.DisplayMetrics.Density);
break;
default:
textViewParameters.RightMargin = (int)(48 * activity.Resources.DisplayMetrics.Density);
break;
}
TextView modelTitle = new TextView(activity);
modelTitle.Text = view;
modelTitle.Gravity = GravityFlags.Center;
modelTitle.TextSize = 17f;
Typeface type = Typeface.CreateFromAsset(Forms.Context.Assets, "abc.ttf");
modelTitle.SetTypeface(type, TypefaceStyle.Bold);
modelTitle.SetTextColor(Android.Graphics.Color.White);
linearLayout.AddView(modelTitle, textViewParameters);
ActionBar.LayoutParams actionbarParams =
new ActionBar.LayoutParams(ActionBar.LayoutParams.MatchParent, ActionBar.LayoutParams.MatchParent);
activity.ActionBar.SetCustomView(linearLayout, actionbarParams);
我也試圖漢堡包圖標更改爲繪製(我同樣的漢堡包圖標之前加一個空格,它會做的工作),但一旦我使用後退按鈕(導航回到頁面來自同一個操作欄),我的圖標再次被默認的漢堡包按鈕取代。
我將不勝感激任何幫助。謝謝!
編輯:
public class MainView : MasterDetailPage
{
public MainView(parameter){
......
sideMenu = new CustomContentPage();//my custom Content Page with listview items
base.MasterBehavior = MasterBehavior.Split;
sideMenu.Padding = new Thickness(0, Device.OnPlatform(50, 0, 0), 0, 0);
Master = sideMenu;
.......
}
...
}
public class App : Application
{
private MainView lcMenu = null;
.....
if (lcMenu == null)
{
MustSet = true;
lcMenu = new MainView(parameter);
lcMenu.RequestPage += LcMenu_RequestPage;
}
....
MainPage = lcMenu;
}
嗨Grace.Thanks您answer.i覺得這個代碼僅適用於工具欄。我們使用一個操作欄。試圖讓它工作,但我不能, –
@TamasNorbert,不完全,這就是爲什麼我說你看起來像你正在定製自己的主細節頁面,而不是直接使用' XF的MasterDetailPage。通過官方的'MasterDetailPage',它使用'工具欄'。如果您堅持自己定製,則需要發佈佈局代碼等。 –
。這並不是要堅持自己定製MasterDetailPage,但是該項目已進入最新階段,並且要花費太多的時間來修改它,並確保我們不會引入不需要的錯誤。我發佈了一些額外的信息,請看我的編輯到原來的帖子!注意:我也意外地編輯了你的文章並在那裏添加了我的代碼,對不起! –