Mam problem z moim RecyclerView
i jego elementami podrzędnymi. Nie rozciągają się one przez cały numer android:layout_width="match_parent"
ani fill_parent
. Próbowałem obu. Rzecz w tym, że ta praca doskonale i bez żadnych zmian, jakoś się zepsuła.Pozycja w RecyclerView nie wypełnia swojej szerokości match_parent
pokazuję to w FragmentDialog
i elementy podrzędne poszerzyć tylko jak wrap_content
kiedy przewijać widok w górę iw dół, są one w pełni rozwinięty, ale jak tylko kliknąć na nich (nazywam notifyDataSetChanged()
) kurczą się one ponownie.
Oto zdjęcie prawidłowo wypełnionego przedmiotu, a poniżej jego sposób ich ładowania lub powiadomienia. Również użyty StickHeaderAdapter
nie wyświetla nagłówków, dopóki nie kliknę jednego z elementów (poprzednio to zrobiłem i nic nie zmieniłem również w tej części).
Oto kod dla wiersza dzieci:
<?xml version="1.0" encoding="utf-8"?>
<carbon.widget.LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
app:carbon_rippleColor="@color/green"
app:carbon_rippleStyle="background">
<carbon.widget.TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/block_name"
android:padding="@dimen/block_row_padding"
android:layout_weight="1"
android:textSize="@dimen/block_row_text_size"
android:textColor="@color/black"
app:carbon_rippleColor="@color/green"
app:carbon_rippleStyle="background"/>
<RelativeLayout
android:id="@+id/download_layout"
android:layout_width="64dp"
android:layout_height="match_parent"
android:layout_marginRight="24dp"
android:layout_marginEnd="24dp"
android:visibility="gone">
<carbon.widget.ProgressBar
android:id="@+id/downloading_bar"
app:carbon_progressStyle="circular_indeterminate"
app:carbon_barWidth="5dp"
app:carbon_tint="@color/green"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_margin="8dp"
android:visibility="invisible"/>
<carbon.widget.TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/block_progress_download"
android:textSize="12sp"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:visibility="invisible" />
</RelativeLayout>
A oto część kodu adaptera gdzie tworzę ViewHolder
:
@Override
public BlockAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.block_row, parent, false);
return new ViewHolder(view);
}
Jest to kod wiążący, jeśli pomaga:
@Override
public void onBindViewHolder(BlockAdapter.ViewHolder holder, int position) {
if (blockData.isDownloading()) {
holder.download_layout.setVisibility(View.VISIBLE);
holder.download_bar.setVisibility(View.VISIBLE);
if (blockData.getProgress() != null) {
holder.download_progress.setVisibility(View.VISIBLE);
holder.download_progress.setText(String.format("%d%%", blockData.getProgress()));
}
} else {
holder.download_layout.setVisibility(View.GONE);
holder.download_bar.setVisibility(View.GONE);
holder.download_progress.setVisibility(View.GONE);
}
if (selected) {
holder.itemView.setBackgroundColor(mContext.getResources().getColor(R.color.green));
holder.block_name.setTextColor(mContext.getResources().getColor(R.color.white));
} else {
holder.itemView.setBackgroundColor(mContext.getResources().getColor(R.color.white));
holder.block_name.setTextColor(mContext.getResources().getColor(R.color.black));
}
}
Nie wiem, dlaczego ta praca w godzinach porannych, a później zmienić ...
Czego próbowałem:
- Zmień
match_parent
dlafill_parent
- Ustaw
RecyclerView.LayoutParams
doLayoutParams.MATCH_PARENT
- Zmiana szerokości programowo
- Zmień createViewHolder z
..., parent, false);
do..., null);
i dodać Params seperatelly - zalogowani szerokość (czasami jest to jak 390, kiedy przewijać dojdzie do 990, a gdy klikam z powrotem do 390)
- konfiguracji
StickHeaders
szybciej, ale są wszystkie ustawione, gdy zostaną utworzone, a nagłówek tam jest, jest po prostu niewidoczny.
WSZYSTKIEGO POMOCY JEST NADAJĄCE SIĘ!
Próbowałaś stosując normalną * * 'LinearLayout'? Nie mam pojęcia, co to jest 'carbon.widget.LinearLayout' lub co robi –
Po prostu dodaje efekt marszczenia do klikania elementów. To działało wcześniej:/ – slorangex
Cóż, robi to trochę niestandardowych pomiarów, więc nie w pełni mi w to ufał. Powinieneś spróbować, jeśli działa z normalnym układem. –