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 descriptionXamarin.FormsからAndroid 4.4のハンバーガーアイコンにパディングを設定できますか?
私は何を達成したいことは、それがずっと7.1のようなアクションバー/画面(の端から右に起動しないようにアンドロイド4.4ハンバーガーボタンを前面にスペースを持っているということです、ご覧くださいスクリーンショット)。ハンバーガーボタンにパディングを追加できますか?Xamarin.FormsをXamarin Studioで使用しています。
アクションバーにカスタムビューを追加すると、問題が悪化するように見えますが、ハンバーガーボタンを左にもっと大きく設定し、画面に完全には収まりません。
これは、アクションバーにカスタムビューを追加する方法の関連部分です。カスタム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'によって' Toolbar'が使用されます。自分でカスタマイズすることを主張する場合は、レイアウトコードなどを投稿する必要があります。 –
。MasterDetailPageを自分自身でカスタマイズすることを主張するのではなく、プロジェクトが最新の段階にあり、変更するにはあまりにも多くのオーバーヘッドが必要であり、 が不必要なバグを導入しないようにする必要があります。私はいくつかの追加情報を掲載しました、元の投稿に私の編集を参照してください!注:私も誤ってあなたの投稿を編集し、そこに私のコードを追加しました、ごめんなさい! –