我在同一行有一个带有3个textview的ListView,从axml文件中充气,每个textview都有一个值,就像一个表。 我需要在运行时更改这些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个textview的水平linearlayout。
<?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天。