我在同一行上有一个带有 3 个 textview 的 ListView,从 axml 文件膨胀,每个 textview 都有一个值,就像一个表。我需要在运行时更改这些文本视图的大小和位置(仅限 x 轴)。我想我已经尝试了一切,但没有任何效果。
这是我的代码:
public override Android.Views.View GetView (int position, Android.Views.View convertView,
Android.Views.ViewGroup parent)
{
var view = convertView;
if (convertView == null || !(convertView is LinearLayout))
view = CurrAct.LayoutInflater.Inflate(Resource.Layout.XXX, parent, false);
if (position == _CurrPos)
SelectRow(view);
else
view.SetBackgroundColor(CurrAct.Resources.GetColor(Resource.Color.solidwhite));
TextView[] LocArrTxt = new TextView[3];
LocArrTxt[0] = view.FindViewById<TextView> (Resource.Id.TextView0);
LocArrTxt[1] = view.FindViewById<TextView> (Resource.Id.TextView1);
LocArrTxt[2] = view.FindViewById<TextView> (Resource.Id.TextView2);
for (int i=0; i<3; i++)
{
LocArrTxt[i].Text = NewValue;
LocArrTxt[i].Layout(NewLeft, OriginalTop, NewRight, OriginalBottom);
LocArrTxt[i].SetWidth(NewRight-NewLeft);
}
return view;
}
这是文件 axml:带有 3 个文本视图的水平线性布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="25px"
android:minHeight="25px"
android:id="@+id/LinLay"
android:background="#ffffffff">
<TextView
android:text="Text"
android:layout_width="160dp"
android:id="@+id/TextView0"
style="@style/BlackLabel"
android:layout_height="30dp"
android:layout_weight="1" />
<TextView
android:text="Text"
android:layout_width="96dp"
android:id="@+id/TextView1"
style="@style/BlackLabel"
android:layout_height="30dp"
android:layout_weight="1" />
<TextView
android:text="Text"
android:layout_width="64dp"
android:id="@+id/TextView2"
style="@style/BlackLabel"
android:layout_height="30dp"
android:layout_weight="1" />
</LinearLayout>
任何想法?我已经失去了 2 天没有解决方案。