elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Temas
Páginas: [1] 2 3
1  Programación / Java / ViewPager2 es lento al mostrar los Tabs en: 23 Mayo 2022, 20:06 pm
Hola, agradecería vuestra ayudada a ver si alguien sabe porque tarda tanto en mostrar las vistas de los difrentes fragment

Tengo ViewPager2 con TabLayout, para crear un menú horizontal, con un total de 12 pestañas, si deslizo el dedo por la pantalla para ir mostrando pestaña por pestaña, la vista de los fragment se muestra en un tiempo razonable, pero si en lugar de ir deslizando el dedo, si por ejemplo estoy en la pestaña 1, y selecciono la pestaña 10, pasan 8 segundos interminables hasta que se muestra, bueno da igual que sea la pestaña 10 como la 3

En el Logcat, he visto este tipo de mensaje:`

WARNING: tile memory limits exceeded, some content may not draw

Este es el código que tengo en MainActivity.java

Código:
mAdapter = new ViewPagerAdapter(getSupportFragmentManager(), getLifecycle());
 
 mAdapter.addFragment(new menu1());
 mAdapter.addFragment(new menu2());
 mAdapter.addFragment(new menu3());
 mAdapter.addFragment(new menu4());
 mAdapter.addFragment(new menu5());
 mAdapter.addFragment(new menu6());
 mAdapter.addFragment(new menu7());
 mAdapter.addFragment(new menu8());
 mAdapter.addFragment(new menu9());
 mAdapter.addFragment(new menu10());
 mAdapter.addFragment(new menu11());
 mAdapter.addFragment(new menu12());
 
 binding.viewPager2.setAdapter(mAdapter);
 
 binding.viewPager2.setOffscreenPageLimit(12-1);
 
 binding.viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback(){
     @Override
     public void onPageSelected(int position) {
         binding.tabs.selectTab(binding.tabs.getTabAt(position));
     }
 });
 
 binding.tabs.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
     @Override
     public void onTabSelected(TabLayout.Tab tab) {
         binding.viewPager2.setCurrentItem(tab.getPosition());
     }
     @Override
     public void onTabUnselected(TabLayout.Tab tab) {
     }
     @Override
     public void onTabReselected(TabLayout.Tab tab) {
 
     }
 });

activity_main.xml

Código:
<RelativeLayout
     ....
     .... >
 
     <com.google.android.material.appbar.AppBarLayout
         android:id="@+id/appBar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content">
 
         <com.google.android.material.appbar.MaterialToolbar
             android:id="@+id/myToolbar"
             android:layout_width="match_parent"
             android:layout_height="?attr/actionBarSize"
             app:layout_scrollFlags="scroll|enterAlways" />
 
         <com.google.android.material.tabs.TabLayout
             android:id="@+id/tabs"
             android:layout_width="match_parent"
             android:layout_height="90dp"
             android:background="@color/colorPrimary"
             app:tabGravity="fill"
             app:tabIconTint="@drawable/color_icono_selector"
             app:tabIndicatorColor="#FA0707"
             app:tabIndicatorFullWidth="false"
             app:tabIndicatorHeight="6dp"
             app:tabMode="scrollable"
             app:tabSelectedTextColor="#FA0707"
             app:tabTextAppearance="@style/CustomTextAppearanceTab"
             app:tabTextColor="#FFFFFF"
             app:titleTextColor="#FFFFFF">
 
             <com.google.android.material.tabs.TabItem
                 .....
                 ..... />
 
             <com.google.android.material.tabs.TabItem
                 .....
                 ..... />
 
             <com.google.android.material.tabs.TabItem
                 .....
                 ..... />
 
         </com.google.android.material.tabs.TabLayout>
 
         <androidx.viewpager2.widget.ViewPager2
             android:id="@+id/viewPager2"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             app:layout_behavior="@string/appbar_scrolling_view_behavior" />
 
     </com.google.android.material.appbar.AppBarLayout>
 
 </RelativeLayout>

He cambiado el valor de binding.viewPager2.setOffscreenPageLimit(12-1) con diferente valores, pero sigue igual de lento al mostrar los diferentes menús
2  Programación / Java / Como Deshabilitar botones del Fragment anterior ? en: 25 Febrero 2022, 14:19 pm
Hola buenos días, tengo un Fragment con botones, que cuando pulso uno de esos botones, se muestra otro Fragment, pero a pesar de poner un color de fondo para que no se muestren los botones del Fragment anterior.

Pues bien, si pulso en una parte una parte de la pantalla que no contiene nada, y coincide que hay un botón del fragment anterior, ese botón abre su fragment correspondiente, porque sigue activo.

En el fragment tengo puesto:

Código:
android:clickable="false"

Código
  1.  
  2. <?xml version="1.0" encoding="utf-8"?>
  3. <RelativeLayout
  4.    xmlns:android="http://schemas.android.com/apk/res/android"
  5.    xmlns:app="http://schemas.android.com/apk/res-auto"
  6.    xmlns:tools="http://schemas.android.com/tools"
  7.    android:layout_width="match_parent"
  8.    android:layout_height="match_parent"
  9.    android:fillViewport="true"
  10.    android:orientation="vertical"
  11.    android:id="@+id/fragmen_inicio"
  12.    android:background="#FAFAFA"
  13.    android:clickable="false">
  14.  
  15.    <ScrollView
  16.        android:layout_width="match_parent"
  17.        android:layout_height="match_parent"
  18.        android:background="#FAFAFA">
  19.         .............
  20.         .............
  21.         .............
  22.  
  23.   </ScrollView>
  24. </RelativeLayout>
  25.  
  26.  

pero los botones, aunque no se ven por el color de fondo del otro fragment siguen activos los botones.

Como puedo Deshabilitar para que al pulsar en el otro fragment no respondan ?

Gracias.
3  Programación / Scripting / Temporizador en menú para cerrar venta. en: 10 Febrero 2022, 12:05 pm
Hola, como puedo poner el contador para que se muestre dentro de un menu

El siguiente contador muestra un texto con un temporizador

Código
  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3.  
  4. set count=5
  5.  
  6. FOR /F %%a IN ('copy /Z "%~dpf0" nul') DO set "carret=%%a"
  7.  
  8. :ONE_SEC
  9. set /p =  [91;103mla venta se cerrara en: %count% !carret!<nul
  10.  
  11. ping -n 2 127.0.0.1 > nul 2>&1
  12.  
  13. set /a count-=1
  14. IF %count% GTR 0 goto :ONE_SEC
  15.  
  16. EndLocal
  17. exit /b
  18.  
  19.  

Tengo creado un menú con la opción “Salir”, que al pulsar esta opción muestre una ventana con ese texto dentro del menú, pero no consigo ponerlo.

Código
  1. :salir
  2. cls
  3. echo.
  4. echo.
  5. echo.                            [91;103m Menu  [47;0;0m
  6. echo. [34;47m    ___________________________________________________ [9;0;0m
  7. echo.
  8. echo.
  9. echo.
  10. echo. [34;47m                       [31;5;4mCerrando [9;0;0m
  11. echo.
  12. set /p =  [94m                   la venta se cerrara en: %count%  [9;0;0m
  13. echo.
  14. echo.
  15. echo.
  16. echo. [34;47m    ___________________________________________________ [9;0;0m
  17. echo.
  18. ping -n 2 127.0.0.1 > nul 2>&1
  19.  
  20. set /a count-=1
  21. IF %count% GTR 0 goto :salir
  22.  
  23.  


Como puedo mostrar el texto y contador dentro de ese menú, o si este metodo no es valido, de que otra forma se puede hacer.


Gracias.

4  Programación / Scripting / Como leer un texto que hay en [Batch] con el Bloc de notas en: 8 Febrero 2022, 18:57 pm
Hola, no sé cómo explicaros esto ya que no tengo mucha idea de programar los archivos BAT.

Tengo creado un menú y una de sus opciones es leer un texto que hay en ese archivo bat con el bloc de notas.
He ido viendo ejemplo de cómo abrirlo, y lo hace, pero no entiendo esos comandos, para poder modificarlos y que pueda abrir el bloc de notas en modo UTF8, o que al crear el archivo temporal lo cree en modo UTF8, y así poder leer las letras con acentos, la ñ, etc.

Os pongo el código que estoy utilizando, a ver si alguien me puede decir que hay que cambiar para poder mostrar el texto con sus acentos.

Desde el menú llamo a :readme

Código:
set "_batf=%~f0"
set "_batp=%_batf:'=''%"

:readme
set "_ReadMe=%SystemRoot%\Temp\ReadMe.txt"
if exist "%_ReadMe%" del /f /q "%_ReadMe%" %nul%
call :export txt "%_ReadMe%"
start notepad "%_ReadMe%"
del /f /q "%_ReadMe%"
exit /b

:export
%nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]:: ASCII);"
exit/b

:txt:
Aplicación
Español
Inglés

:txt:


Gracias.
5  Programación / Scripting / Poner acentos en archivo BAT en: 4 Febrero 2022, 16:31 pm
Hola, no se si ha cambiado algo, pero ahora me muestra otro carácter junto con la letra que cambio.

Por ejemplo, para estas palabras
Menú
Opción
Niño

Creo el archivo BAT con estos caracteres:
Men£
Opci¢n
Ni¤o

Y me muestra esto, como veis muestra un carácter delante de cada letra que se ha cambiado:



Que se puede hacer para que no muestre ese carácter?

Gracias.
6  Programación / Java / Problema en TabLayout con ViewPager2 en: 28 Enero 2022, 21:58 pm
Hola buenas tardes, agradecería vuestra ayuda a ver si alguien me puede decir cómo solucionar este problema con este comportamiento.
  
Tengo creado un menú horizontal con pestañas/fragment, en el TabLayout, donde muestro esos fragment en ViewPager2.
Cada uno de esos fragment del menú, muestra un texto <TextView>, y el menú funciona correctamente, si pulso en cualquiera de los fragment muestra su contenido.
 
Pues bien, hay un problema si cambio el <TextView> por unos botones <com.google.android.material.button.MaterialButton>.

Por ejemplo, tengo 5 fragment en el menú, y en el fragmet 3 que tiene el <TextView> lo cambio para mostrar un botón, <com.google.android.material.button.MaterialButton>, si ahora pulso para mostrar el fragment 4, me muestra el ultimo fragment del menú, el fragment 5.

Fragment 1, 2, 3, 4, 5, 6

Código
  1. <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
  2.     xmlns:app="http://schemas.android.com/apk/res-auto"
  3.     xmlns:tools="http://schemas.android.com/tools"
  4.     android:id="@+id/fragmenMenu1"
  5.     android:layout_width="match_parent"
  6.     android:layout_height="match_parent"
  7.     android:clickable="false"
  8.     android:focusable="true"
  9.   android:background="@color/Blanco"
  10.     android:fillViewport="true"
  11.     tools:context=".Menu3">
  12.  
  13.             <TextView
  14.                 android:id="@+id/textViewMenu1"
  15.                 android:layout_width="match_parent"
  16.                 android:layout_height="wrap_content"
  17.                 android:gravity="center"
  18.                 android:text="1"
  19.                 android:textSize="40sp" />
  20. </ScrollView>
  21.  

Ahora cambio el código del Fragment 3, por unos botones:

Código
  1. <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
  2.     xmlns:app="http://schemas.android.com/apk/res-auto"
  3.     xmlns:tools="http://schemas.android.com/tools"
  4.     android:id="@+id/fragmenMenu1"
  5.     android:layout_width="match_parent"
  6.     android:layout_height="match_parent"
  7.     android:clickable="false"
  8.     android:focusable="true"
  9.   android:background="@color/Blanco"
  10.     android:fillViewport="true"
  11.     tools:context=".Menu3">
  12.  
  13.             <LinearLayout
  14.                 android:layout_width="match_parent"
  15.                 android:layout_height="wrap_content">
  16.  
  17.                 <LinearLayout
  18.                     android:id="@+id/linearL1"
  19.                     android:layout_width="match_parent"
  20.                     android:layout_height="match_parent"
  21.                     android:layout_margin="8dp"
  22.                     android:gravity="center"
  23.                     android:orientation="horizontal">
  24.  
  25.                     <com.google.android.material.button.MaterialButton
  26.                         android:id="@+id/button1"
  27.                         style="@style/Boton_difuminado_4"
  28.                         android:layout_width="wrap_content"
  29.                         android:layout_height="wrap_content"
  30.                         android:layout_marginStart="8dp"
  31.                         android:layout_marginEnd="8dp"
  32.                         android:paddingStart="15dp"
  33.                         android:paddingEnd="15dp"
  34.                         android:text="Boton 1"
  35.                         android:textAllCaps="false"
  36.                         android:textColor="@android:color/white"
  37.                         app:backgroundTint="@null"
  38.                         app:backgroundTintMode="add" />
  39.  
  40.                     <com.google.android.material.button.MaterialButton
  41.                         android:id="@+id/button2"
  42.                         android:layout_width="wrap_content"
  43.                         android:layout_height="wrap_content"
  44.                         android:layout_marginStart="8dp"
  45.                         android:layout_marginEnd="8dp"
  46.                         android:backgroundTint="@color/Gris_1"
  47.                         android:paddingStart="15dp"
  48.                         android:paddingEnd="15dp"
  49.                         android:text="Boton 2"
  50.                         android:textAllCaps="false"
  51.                         android:textColor="#ff0000"
  52.                         android:textStyle="bold|italic"
  53.                         app:backgroundTint="@null"
  54.                         app:backgroundTintMode="add" />
  55.  
  56.                 </LinearLayout>
  57.             </LinearLayout>
  58. </ScrollView>
  59.  

Trabajando bien


Trabajando mal



¿Qué es lo que esta pasando aquí?

Un saludo.

7  Programación / Java / Pantalla en blanco al cerrar el PDF en: 30 Agosto 2021, 10:42 am
Hola,
Como el amigo rub'n leerá este post, jeje, estoy probando a mostrar un PDF con un Intent, porque no consigo mostrarlo mediante alguna librería fiable, por fable quiero decir que lleve tiempo y tenga actualizaciones, y no que te deje fuera de juego a los dos años,.
La verdad que prefiero mostrar el pdf con una librea y no con un Intent, porque así el pdf se abre dentro de la aplicación, que es lo que intento.

El caso es que estoy mostrando un pdf con este código

Código:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
try {
    startActivity(intent);
} catch (ActivityNotFoundException e) {
}

El PDF se muestra sin problemas:


Pero cuando vuelves atrás para cerrar el pdf, muestra una ventana en blanco, cuando lo que debería de mostrar es el menú de la aplicación.



Como se puede solucionar esto para que no muestre la ventana en blanco ?

Gracias.


8  Programación / Java / Como leer archivos PDF en Android en: 23 Agosto 2021, 18:18 pm
Hola, estaba utilizando la librería PDFViewer, pero parece que ha muerto, lleva tiempo sin funcionar.

Código:
https://github.com/barteksc/AndroidPdfViewer

Así que me he puesto a buscar alguna solución para poder leer archivos PDF que se encuentren en la carpeta Documentos de la Memoria Externa, y no soy capaz de leer estos PDF.

He probado abrirlos desde el WebView con PDF.js pero solo funciona con archivos que estén en la carpeta Assets, aparte de que es muy lento, y tiene algunos inconvenientes más.

Código:
https://mozilla.github.io/pdf.js/

Código:
Uri path = Uri.parse(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + "/1.pdf");
webView.loadUrl("file:///android_asset/pdfjs/web/viewer.html?file=" + path + "#zoom=page-width");


He probado con otras librerías, pero son muy pobres y no son muy practicas porque para pasar de página hay que utilizar botones, con lo que un documento grande es una pesadilla pulsar tantas veces el botón para pasar de página.

El PDF tengo que abrirlo en la misma aplicación, por lo que utilizar el código para abrir los pdf con aplicaciones externas no me sirve, y tampoco código que tenga que hacer uso de internet, porque la mayoría de las veces no tengo cobertura.


Si alguien me puede echar una mano para poder leer archivos PDF se lo agradecería.

P.D. No utilizo código kotlin

Gracias.
9  Foros Generales / Dudas Generales / En Acrobat DC como duplicar un campo de formulario sin opcion a modificacion en: 8 Diciembre 2019, 14:13 pm
Hola, tengo un campo fecha, que cuando introduzca una fecha quiero que también aparezca en otra parte del documento.

He copiado y pegado ese campo en otra parte del documento, pero desde los dos campos puedo modificar la fecha, solo quiero que se modifique en uno y el otro que solo aparezca la fecha.

Como se puedo hacer ?


Gracias.
10  Programación / Java / Pantalla en blanco al volver atrás cuando se utiliza FileProvider en: 30 Octubre 2019, 14:18 pm
estoy utilizando FileProvider para compartir archivos con otras aplicaciones, y me he encontrado con un problema que no consigo solucionar.

Cuando se muestra esta ventana para escoger una aplicación con la que abrir el archivo:



Si en lugar de seleccionar una aplicación, pulso la tecla de retroceso, no vuelve a mostrar la aplicación que estoy utilizando, sino que se queda una ventana o fondo blanco



Tengo que volver a pulsar otra vez la tecla de retroceso para quitar ese blanco y que se muestre la aplicación que estoy utilizando.

¿ Como puedo evitar que se muestre esa ventana con fondo blanco ?

Este es el codigo que tengo puesto para FileProvider

Código:
Intent shareIntent = new Intent();
 shareIntent.setAction(Intent.ACTION_SEND);
 shareIntent.setType("application/*");
 shareIntent.setAction(Intent.ACTION_VIEW);            
 shareIntent.putExtra(Intent.EXTRA_STREAM, contentUri);
 shareIntent.setDataAndType(contentUri, "application/*");      

 startActivity(Intent.createChooser(shareIntent, "Seleccionar aplicación "));

Salu2.
Páginas: [1] 2 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines