feat: mejoras de interfaz v10.1.4 - botón refresh visible, límite de scroll y barra indicadora
Cambios implementados: 1. Botón de Actualización Más Visible (para control remoto) - Nuevo archivo: btn_refresh_selector.xml con estados de foco - Color ámbar brillante (#FFC107) cuando está enfocado - Borde grueso (4dp) para mejor visibilidad 2. Prevención de Navegación Entre Secciones - Modificado: MainActivity.java showEvents() - Agregado OnScrollListener que detiene scroll al final de eventos - Previene paso accidental a sección de canales 3. Barra de Indicador de Scroll - Nuevo archivo: scrollbar_vertical.xml (drawable) - Modificado: activity_main.xml con atributos de scrollbar - Barra visual derecha como indicador de posición Archivos modificados: - app/src/main/java/com/streamplayer/MainActivity.java - app/src/main/res/layout/activity_main.xml - app/src/main/res/values/colors.xml Archivos nuevos: - app/src/main/res/drawable/btn_refresh_selector.xml - app/src/main/res/drawable/scrollbar_vertical.xml Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -14,6 +14,7 @@ import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
@@ -169,6 +170,8 @@ public class MainActivity extends AppCompatActivity {
|
||||
refreshButton.setVisibility(View.GONE);
|
||||
contentList.setLayoutManager(channelLayoutManager);
|
||||
contentList.setAdapter(channelAdapter);
|
||||
// Clear any scroll listeners from Events section
|
||||
contentList.clearOnScrollListeners();
|
||||
loadingIndicator.setVisibility(View.GONE);
|
||||
channelAdapter.submitList(section.channels);
|
||||
if (section.channels.isEmpty()) {
|
||||
@@ -185,6 +188,26 @@ public class MainActivity extends AppCompatActivity {
|
||||
refreshButton.setVisibility(View.VISIBLE);
|
||||
contentList.setLayoutManager(eventLayoutManager);
|
||||
contentList.setAdapter(eventAdapter);
|
||||
// Add scroll listener to prevent scrolling from Events to Channels section
|
||||
contentList.clearOnScrollListeners();
|
||||
contentList.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
||||
super.onScrolled(recyclerView, dx, dy);
|
||||
// Only prevent downward scroll when at the last item
|
||||
if (dy > 0) { // Scrolling down
|
||||
int visibleItemCount = eventLayoutManager.getChildCount();
|
||||
int totalItemCount = eventLayoutManager.getItemCount();
|
||||
int firstVisibleItemPosition = eventLayoutManager.findFirstVisibleItemPosition();
|
||||
|
||||
// Check if we're at the last item
|
||||
if (firstVisibleItemPosition + visibleItemCount >= totalItemCount) {
|
||||
// Prevent further scrolling by stopping the scroll
|
||||
recyclerView.stopScroll();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
if (cachedEvents.isEmpty()) {
|
||||
loadEvents(false);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user