2017-06-06 15 views
0

これは非常に基本的だと確信していますが、私のイメージ(アイコン)がテキストの左側に表示されない理由はわかりません。私はこのようなものを持っています (icon) Text。これは私が左drawablesを使って試したものですが、私にとってはうまくいかないでしょう。設定イメージ閉じるTextView - Xamarin Android

listItem.axml

<LinearLayout 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="63" 
       android:orientation="vertical" 
       android:paddingRight="10dp" 
       android:paddingLeft="10dp" 
       android:paddingTop="7dp" 
       android:paddingBottom="7dp"> 
       <TextView 
        android:text="Event Name" 
        android:textAppearance="?android:attr/textAppearanceMedium" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/textView1" 
        android:textStyle="bold" 
        android:textColor="#000" 
        android:gravity="center_vertical" 
        android:padding="2dp" 
        android:textSize="18sp"/> 

活動

 textIcon = FindViewById<TextView>(Resource.Id.textView1); 
       textIcon.SetCompoundDrawablesWithIntrinsicBounds(Resource.Drawable.Icon, 0, 0, 0); 

アダプターとホルダー

public class Fragment : SupportFragment 

     { 
      public override void OnCreate(Bundle savedInstanceState) 
      { 
       base.OnCreate(savedInstanceState); 
       // Create your fragment here 
      } 


      public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
      { 
       RecyclerView recyclerView = inflater.Inflate(Resource.Layout.Fragment, container, false) as RecyclerView; 

       SetUpRecyclerView(recyclerView); 

       return recyclerView; 
      } 

      private void SetUpRecyclerView(RecyclerView recyclerView) 
      { 
       recyclerView.SetLayoutManager(new LinearLayoutManager(recyclerView.Context)); 

       var Adapter = new EventAdapter(Collection.GetData()); 

       recyclerView.SetAdapter(Adapter); 



      } 

      public class Adapter : RecyclerView.Adapter 
      { 

       private JavaList<MyData> AllData; 

       public EventAdapter(JavaList<MyData> AllData) 
       { 
        this.AllData = AllData; 

       } 


       public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position) 
       { 
        MyHolder hold = holder as MyHolder; 
        hold.Name.Text = AllData[position].Name; 



    } 


       public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType) 
       { 
        View v = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.ListItem, parent, false); 
        MyHolder holder = new MyHolder(v); 

        return holder; 
       } 

       public override int ItemCount 
       { 

        get { return AllData.Size(); } 

       } 

      } 
     } 




    public class MyHolder : RecyclerView.ViewHolder 
    { 

     public TextView Name; 


     public EventHolder(View itemView) : base(itemView) 
     { 
      Name = itemView.FindViewById<TextView>(Resource.Id.textView1); 




     } 


    } 
+0

リスト項目は、アクティビティページ上recyclerView上のテキストを表示しているアダプタために通知します。だから私はアイコンをtextView1にバインドしようとしています。アクティビティページにリスト項目が表示されます。) –

+0

アイコンを更新した後にnotifydatasetchanged()を試しましたか? –

+0

私はそれを試していませんでした。どのように私はその機能でアイコンを更新するのですか? –

答えて

0

だけではない置きますフラグメント内でビューの更新後にifydatasetchnicatedされます。その後、

textIcon = FindViewById<TextView>(Resource.Id.textView1); 
       textIcon.SetCompoundDrawablesWithIntrinsicBounds(Resource.Drawable.Icon, 0, 0, 0); 

Adapter.notifyDataSetChanged() 
関連する問題