通过Id(数字)与单独的,唯一命名的布局文件区分多个视图实例

时间:2013-07-21 17:49:36

标签: android xamarin.android

我目前正在通过从单个布局文件中扩展来实例化多个视图实例RecordNoteBox.axml

RecordNoteBox.axml

<?xml version="1.0" encoding="utf-8"?>

<app.droid.views.custom.PagedFragmentRecordNoteBox
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/rb_record_note_box"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="#FF555555">

由于我没有专门将每个实例的Id(数字)设置为唯一的非零值,因此它们都指向同一个实例,因此通过一个引用更改内容会导致它们显示在所有实例中视图的其他“屏幕副本”(缺少更好的术语)。

出于性能原因,这是首选方法

(A)将每个实例的.Id值设置为唯一值(整数)

static int _idCount = 1;

View box1 = _inflater.Inflate(Resource.Layout.RecordNoteBox, null);
View box2 = _inflater.Inflate(Resource.Layout.RecordNoteBox, null);

box1 = _idCount++;
box2 = _idCount++;

(B)制作布局文件的多个副本,为每个副本指定一个特定的名称

View box1 = _inflater.Inflate(Resource.Layout.RecordNoteBox1, null);
View box2 = _inflater.Inflate(Resource.Layout.RecordNoteBox2, null);

还是真的重要吗?谢谢!

1 个答案:

答案 0 :(得分:1)

Ids只在您使用findViewById()时才有意义,因为您已经拥有对各个视图的引用,所以您不需要这样做。我不打算做A或B。