ツールバーの線形レイアウトにボタンを動的に追加すると奇妙な方法でレンダリングされます: コード内で作成され、ビューに渡されるボタンの幅がランダムな幅。 layoutparamsを "コンテンツをラップする"ように設定しましたが、何の違いもありません。どのようにそれを修正するための任意の手掛かり?私は自分のボタンが含まれているテキストにフィットするようにしたいと思います。ボタンの幅が動的にテキストにフィットしないようにするには
Toolbar.xml:ボタンを追加するには
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="@color/Blue"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<LinearLayout
android:id="@+id/layout_toolbar"
android:layout_width="fill_parent"
android:orientation="horizontal"
android:layout_height="fill_parent">
<Button
android:id="@+id/app_name_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="3dp"
android:background="@android:color/transparent"
android:textColor="@android:color/white"
android:textSize="14dp"
android:textStyle="bold"
android:gravity="left|center_vertical"
android:text="@string/app_name" />
<!-- dynamically button will be here-->
</LinearLayout>
</android.support.v7.widget.Toolbar>`
マイコード:
それはレンダリング方法var layout_toolbar = FindViewById<LinearLayout>(Resource.Id.layout_toolbar);
//Add arrow image
ImageView arrow = new ImageView(context);
arrow.SetBackgroundResource(Resource.Drawable.arrow);
arrow.Id = ariane_lvl_count;
layout_toolbar.AddView(arrow);
//set layoutparams for arrow image
LinearLayout.LayoutParams lp_arrow = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WrapContent, LinearLayout.LayoutParams.WrapContent);
lp_arrow.Gravity = GravityFlags.Left|GravityFlags.CenterVertical;
lp_arrow.LayoutParameters = lp_arrow;
//Add button
Button btn = new Button(this);
btn.Id = ariane_lvl_count;
btn.TextSize = 15;
var folder = (currentFolder + gridViewString[e.Position] + "/");
btn.Hint = folder;
btn.Text = gridViewString[e.Position];
btn.SetBackgroundColor(Color.Yellow);
btn.SetSingleLine(true);
btn.SetTextColor(Resources.GetColor(Color.Yellow));
layout_toolbar.AddView(btn);
//set layoutparams for button
LinearLayout.LayoutParams lp_btn = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WrapContent, LinearLayout.LayoutParams.FillParent);
lp_btn.Gravity = GravityFlags.Left|GravityFlags.CenterVertical;
btn.LayoutParameters = lp_btn;
要素があまりにも多くのスペースを取るとそうでありません他の人のようにテキストにフィットする
あなたはこの問題を再現することができ、基本的なデモを共有していただけますか? –