에로드 그리고이
어떻게 빈의이 종류를 보여줄 수있을 때까지 빈 목록은 전체 목록이로드 될 때까지 snapchat의 일부 애니메이션과 결합 된 udemy와 같습니다.
에로드 그리고이
어떻게 빈의이 종류를 보여줄 수있을 때까지 빈 목록은 전체 목록이로드 될 때까지 snapchat의 일부 애니메이션과 결합 된 udemy와 같습니다.
이제 조금 더 설명 했으므로이 대답을 편집하고 있습니다. 애니메이션
가지고 : 당신이 데이터에 대한 이전의 모든 정보를 검색 할 수 없기 때문에
스카이 스캐너와 비슷한 일을하기 위해, 당신은이 단계를 수행해야합니다 가짜 자리를 표시 Lottie 라이브러리 살펴보기 정말 멋진 애니메이션을 할 수 있고 전화 응답이있을 때까지이 애니메이션을 루프로 실행하려면 여기에서 라이브러리를 확인하십시오. https://github.com/airbnb/lottie-android Lottie는 벡터 애니메이션을 수행하는 좋은 방법이며 json 파일을 사용합니다. 정말 가볍지 만 할 수있어. 물론 옛날 스타일의 애니메이션.
자리 표시 자에 대한 논리는 다음과 같습니다. 데이터 세트의 내용을 전환하려고합니다. 어댑터가 데이터 세트의 내용이 표시 할 실제 데이터의 종류인지 확인합니다 실제 XML로 채우기 위해 실제 recyclerview 홀더를 사용합니다. 실제 데이터가 아닌 경우 placeholder xml을 사용하여 행을 부 풀릴 것입니다 (동일한 크기와 처리로 원하는 결과를 얻을 수 있습니다).) 및 자리 표시 자에 대한 새로운 recyclerview 홀더를 사용하여 행 동작을 제어 할 수 있습니다. 예를 들어 위치를 기준으로 애니메이션 또는 인터 케 일 객체 비헤이비어를 제어 할 수 있습니다.
@Override
public int getItemViewType(int position) {
return mDataSet.get(position) instanceof YourCustomObject ? VIEW_TYPE_DATA : VIEW_TYPE_PLACEHOLDER;
}
:실제 데이터의 소유자로 객체 YourCustomObject을 고려하지만만큼 당신이 당신의 가짜 자리에 대한 데이터의 다른 종류의 일을 모든 종류의 수 있습니다, 어댑터 내부의 논리는 이것이다
그런
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
RecyclerView.ViewHolder holder;
if (viewType == VIEW_TYPE_DATA) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_real_data, parent, false);
holder = new RealDataHolder(v);
} else {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_placeholder, parent, false);
holder = new PlaceholderHolder(v);
}
return holder;
}
onBindViewHolder에 홀더의 유형을 확인하는 것을 잊지 마세요
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (holder instanceof RealDataHolder) {
YourCustomObject data = (YourCustomObject) dataSet.get(position);
(...)
0 어댑터 내부에 데이터 집합 객체 (자바 클래스)의 목록 나는 그것이 도움이되기를 바랍니다
는 것을 잊지 마세요.
그렇지 않은 것처럼 보입니다. 내가 원하는 것을 얻으십시오. 빈 자리 표시자는 목록 항목의 정확한 수를 얻기 전에 거기에 있어야합니다. 날씨가 중요하지 않습니다. 1 또는 50을 표시해야합니다. 빈 자리 표시 자 10 개를 말한 다음 전체 목록이 표시됩니다. –
흠, 나는 대략 생각했습니다. 당신이 SkyScanner의 앱을 사용했을 때, 그들은 위조 된 자리 표시자인 것처럼, 내가 제공 한 동일한 코드를 사용하고 다른 종류의 객체를 위해 데이터 세트를 교체합니다.위의 코드는 데이터 세트에 데이터의 종류를 확인하고 그 안에 자리 표시자를 표시하므로 누락 된 것은 새로운 가져 오기 호출을 트리거 할 때마다 (10) 다른 오브젝트에 대한 소스의 데이터 내용을 전환하는 것입니다. 정보. 게다가 멋진 자리 표시자를 원하면 Lottie를 사용하라는 제 제안을 유지하면서 환상적인 조명 라이브러리를 사용하여 멋진 애니메이션을 완성하십시오. –
고마워, 너 최고야. –
원하는 디자인으로보기를 추가하고로드가 완료되면 목록보기를 숨기고 자리 표시 자보기를 숨기고 ListView를 표시합니다. – Zoe
https://github.com/sharish/ShimmerRecyclerView – LordRaydenMK