1

我在下面的Layout中顯示了我的recyclerView中的項目列表。 但是textview anchorGravity在滾動時從一個角落跳到另一個角落。CoordinatorLayout layout_anchor滾動時跳轉?

大多數項目在滾動後被帶到原始位置。 它爲什麼會發生?

我該如何解決?

enter image description here

item_shopperitems.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <LinearLayout 
     android:id="@+id/parent" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="8dp" 
     android:background="@color/cyan" 
     android:elevation="8dp" 
     android:orientation="horizontal" 
     android:padding="8dp" 
     android:weightSum="4"> 

     <LinearLayout 
      android:id="@+id/layout_header" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="3" 
      android:gravity="center_vertical" 
      android:orientation="vertical"> 

      <TextView 
       android:id="@+id/text_title" 
       fontPath="fonts/Sofia-Pro-Regular.otf" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="8dp" 
       android:layout_marginTop="4dp" 
       android:text="Spinach Spinach Spinach Spinach Spinach Spinach Spinach Spinach Spinach Spinach Spinach Spinach" 
       android:textColor="@color/tw__composer_white" 
       android:textSize="18sp" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/text_unit" 
       fontPath="fonts/Sofia-Pro-Regular.otf" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="8dp" 
       android:layout_marginTop="4dp" 
       android:text="100 gms" 
       android:textColor="@color/tw__composer_white" 
       android:textSize="16sp" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/layout_quantity" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="18dp" 
      android:layout_marginTop="2dp" 
      android:layout_weight="1" 
      android:gravity="center_horizontal" 
      android:orientation="vertical"> 

      <TextView 
       android:id="@+id/text_quantity" 
       fontPath="fonts/Sofia-Pro-Regular.otf" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_margin="4dp" 
       android:textColor="@color/tw__composer_white" 
       android:textSize="16sp" 
       android:textStyle="bold" 
       tools:text="10 x" /> 

      <TextView 
       android:id="@+id/text_singleprice" 
       fontPath="fonts/Sofia-Pro-Regular.otf" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="-5dp" 
       android:textColor="@color/tw__composer_white" 
       android:textSize="16sp" 
       tools:text="₹ 10000.22" /> 

     </LinearLayout> 

    </LinearLayout> 

    <TextView 
     android:id="@+id/text_price" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/submit_button" 
     android:elevation="8dp" 
     android:paddingBottom="8dp" 
     android:paddingLeft="12dp" 
     android:paddingRight="12dp" 
     android:paddingTop="8dp" 
     android:text="₹ 10000.22" 
     android:textColor="@color/tw__composer_white" 
     android:textSize="16sp" 
     android:textStyle="bold" 
     app:layout_anchor="@id/parent" 
     app:layout_anchorGravity="bottom|end" /> 

</android.support.design.widget.CoordinatorLayout> 

ADAPTER

public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.MyViewHolder> { 

    private ArrayList<DataModel> dataSet; 

    public static class MyViewHolder extends RecyclerView.ViewHolder { 

     TextView textViewName; 
     TextView textViewVersion; 
     ImageView imageViewIcon; 

     public MyViewHolder(View itemView) { 
      super(itemView); 
      this.textViewName = (TextView) itemView.findViewById(R.id.textViewName); 
      this.textViewVersion = (TextView) itemView.findViewById(R.id.textViewVersion); 
     } 
    } 

    public CustomAdapter(ArrayList<DataModel> data) { 
     this.dataSet = data; 
    } 

    @Override 
    public MyViewHolder onCreateViewHolder(ViewGroup parent, 
              int viewType) { 
     View view = LayoutInflater.from(parent.getContext()) 
       .inflate(R.layout.item_shopperitems, parent, false); 

     view.setOnClickListener(MainActivity.myOnClickListener); 

     MyViewHolder myViewHolder = new MyViewHolder(view); 
     return myViewHolder; 
    } 

    @Override 
    public void onBindViewHolder(final MyViewHolder holder, final int listPosition) { 

     TextView textViewName = holder.textViewName; 
     TextView textViewVersion = holder.textViewVersion; 

     textViewName.setText(dataSet.get(listPosition).getName()); 
     textViewVersion.setText(dataSet.get(listPosition).getVersion()); 
    } 

    @Override 
    public int getItemCount() { 
     return dataSet.size(); 
    } 
} 

注意

如果我有一個簡單的線性佈局沒有任何孩子也。發生這個問題。所以我覺得這個問題是關係到CoordinatorLayout

最小布局

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <LinearLayout 
     android:id="@+id/parent" 
     android:layout_width="match_parent" 
     android:layout_height="120dp" 
     android:layout_margin="8dp" 
     android:background="@color/cyan" 
     android:elevation="8dp" 
     android:orientation="horizontal" 
     android:padding="8dp" 
     android:weightSum="4"> 

     </LinearLayout> 

    <TextView 
     android:id="@+id/text_price" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/submit_button" 
     android:elevation="8dp" 
     android:paddingBottom="8dp" 
     android:paddingLeft="12dp" 
     android:paddingRight="12dp" 
     android:paddingTop="8dp" 
     android:text="₹ 10000.22" 
     android:textColor="@color/tw__composer_white" 
     android:textSize="16sp" 
     android:textStyle="bold" 
     app:layout_anchor="@id/parent" 
     app:layout_anchorGravity="bottom|end" /> 

</android.support.design.widget.CoordinatorLayout> 
+0

嘗試在最小** **佈局部分中爲您的LinearLayout裏面你text_price的TextView。 –

回答

0
<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="wrap_content"> 

<LinearLayout 
    android:id="@+id/parent" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="8dp" 
    android:background="@color/cyan" 
    android:elevation="8dp" 
    android:orientation="horizontal" 
    android:padding="8dp" 
    android:weightSum="4"> 

    <LinearLayout 
     android:id="@+id/layout_header" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="3" 
     android:gravity="center_vertical" 
     android:orientation="vertical"> 

     <TextView 
      android:id="@+id/text_title" 
      fontPath="fonts/Sofia-Pro-Regular.otf" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="8dp" 
      android:layout_marginTop="4dp" 
      android:text="Spinach Spinach Spinach Spinach Spinach Spinach Spinach Spinach Spinach Spinach Spinach Spinach" 
      android:textColor="@color/tw__composer_white" 
      android:textSize="18sp" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/text_unit" 
      fontPath="fonts/Sofia-Pro-Regular.otf" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="8dp" 
      android:layout_marginTop="4dp" 
      android:text="100 gms" 
      android:textColor="@color/tw__composer_white" 
      android:textSize="16sp" /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/layout_quantity" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="18dp" 
     android:layout_marginTop="2dp" 
     android:layout_weight="1" 
     android:gravity="center_horizontal" 
     android:orientation="vertical"> 

     <TextView 
      android:id="@+id/text_quantity" 
      fontPath="fonts/Sofia-Pro-Regular.otf" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="4dp" 
      android:textColor="@color/tw__composer_white" 
      android:textSize="16sp" 
      android:textStyle="bold" 
      tools:text="10 x" /> 

     <TextView 
      android:id="@+id/text_singleprice" 
      fontPath="fonts/Sofia-Pro-Regular.otf" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="-5dp" 
      android:textColor="@color/tw__composer_white" 
      android:textSize="16sp" 
      tools:text="₹ 10000.22" /> 

     <TextView 
      android:id="@+id/text_price" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@drawable/submit_button" 
      android:elevation="8dp" 
      android:paddingBottom="8dp" 
      android:paddingLeft="12dp" 
      android:paddingRight="12dp" 
      android:paddingTop="8dp" 
      android:text="₹ 10000.22" 
      android:textColor="@color/tw__composer_white" 
      android:textSize="16sp" 
      android:textStyle="bold" 
      app:layout_anchor="@id/parent" 
      app:layout_anchorGravity="bottom|end" /> 
    </LinearLayout> 

</LinearLayout> 

+0

我已添加它! – user3467240

+0

我認爲你的text_price應該在layout_quantity下,試試看。 – Saurabh

+0

請看看說明! – user3467240

相關問題