RelativeLayout and ViewStub inflation

后端 未结 4 1524
[愿得一人]
[愿得一人] 2021-02-07 22:27

I have the following layout.



        
相关标签:
4条回答
  • 2021-02-07 23:06

    It's an old question, but I've got a useful addition

    1) Yes, like others have posted - use same id and inflatedId:

    <ViewStub 
       android:id="@+id/view_stub_id"
       android:inflatedId="@id/view_stub_id"
       ... 
    />
    

    2) When you need to inflate view or refresh its content it's convenient to act like this:

        View v = parentView.findViewById(R.id.view_stub_id);
        if (v instanceof ViewStub)
            v = ((ViewStub) v).inflate();
    
        // here v is always the inflated view
        // ...
    
    0 讨论(0)
  • 2021-02-07 23:15

    I know it's a bit of an old question but the trick in there is to set the inflatedId parameter to the same as the actual viewStub itself, like this:

    <ViewStub android:id="@+id/stub_for_alt_name"
              android:inflatedId="@id/stub_for_alt_name"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:layout_below="@+id/list_item_name"
              android:layout="@layout/text_view_alt_name"/>
    
    0 讨论(0)
  • 2021-02-07 23:15
    Hi you can try this one.
    
    <RelativeLayout 
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            style="@style/list_item_bottom">
    
    //you can add another relative layout containing your textview and imageview
      <RelativeLayout
            android:id="@+id/layout_content" 
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
    
    
            <TextView android:id="@+id/list_item_name"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
    
             <ImageView android:id="@+id/list_item_dopinfo1_image"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_below="@+id/stub_for_alt_name"
                 android:src="@drawable/ic_released"
                 android:layout_below="@+id/list_item_name" />
    
    </RelativeLayout>
    
    <ViewStub android:id="@+id/stub_for_alt_name"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:layout_below="@+id/list_item_name"
              android:layout="@layout/text_view_alt_name"
              android:layout_below="@+id/layout_content" />
    
    </RelativeLayout>
    
    0 讨论(0)
  • 2021-02-07 23:17

    The only solution I've found is to give ViewStub and related TextView the same android:id value.

    0 讨论(0)
提交回复
热议问题