[Android] Incorrect border coloration with sufficiently high border radius
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C++
- Estrellas
- 127k
- Forks
- 25.3k
- Merge medio
- 1 d 23 h
- PR fusionados (30 d)
- 4
Descripción
Description
It seems Android has trouble displaying the correct border colors when borderRadius exceeds a certain value.
The use case here is having an easily reusable style or component which can be circular regardless of the size; most easily achieved by setting a high border radius. Given that this works as intended on iOS and web, I assume it is a supported use case. If border radius is not intended to exceed a certain calculable value it should be noted in the docs somewhere but I was unable to find any relevant information. Alternatively, It might make sense to clamp the value in the RN core code but I'll leave that to the maintainers to decide.
Based on my testing this issue only impacts Android as you can see in the screenshots from the snack I've linked below.
Web:
iOS:
Android:
I've seen some other recent issues around border radius on Android but none of them seem to be directly related to this particular behavior based on my understanding so apologies if this is a duplicate, obviously feel free to close/merge in that case.
React Native Version
0.72.7
Output of npx react-native info
System:
OS: macOS 13.6
CPU: (10) arm64 Apple M1 Max
Memory: 2.82 GB / 64.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 18.16.0
path: ~/.nvm/versions/node/v18.16.0/bin/node
Yarn:
version: 1.22.19
path: ~/.nvm/versions/node/v18.16.0/bin/yarn
npm:
version: 9.5.1
path: ~/.nvm/versions/node/v18.16.0/bin/npm
Watchman:
version: 2023.10.23.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.14.2
path: /opt/homebrew/opt/ruby/bin/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 23.0
- iOS 17.0
- macOS 14.0
- tvOS 17.0
- watchOS 10.0
Android SDK: Not Found
IDEs:
Android Studio: 2022.2 AI-222.4459.24.2221.9971841
Xcode:
version: 15.0.1/15A507
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.2
path: /usr/bin/javac
Ruby:
version: 3.2.2
path: /opt/homebrew/opt/ruby/bin/ruby
npmPackages:
"@react-native-community/cli": Not Found
react:
installed: 18.2.0
wanted: 18.2.0
react-native:
installed: 0.72.7
wanted: 0.72.7
react-native-macos: Not Found
npmGlobalPackages:
"react-native": Not Found
Android:
hermesEnabled: true
newArchEnabled: false
iOS:
hermesEnabled: true
newArchEnabled: false
Steps to reproduce
- Create a
<View />. - Give the view different colors for each of
borderTopColor,borderBottomColor,borderRightColor, andborderLeftColor - Set the view's
heightandwidthto any number,n - Set the view's
borderRadiusto any number greater thann/2 - Observe the coloration of the border. Optionally, you can change the
borderRadiusvalue to see how the colors change with different values.
Snack, screenshot, or link to a repository
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza ejecutando el Snack enlazado y reproduciendo el comportamiento de Android con diferentes colores de borde y un borderRadius mayor que la mitad del tamaño de la vista. Rastrea el punto de entrada del border-rendering de React Native en Android y, después, verifica el resultado comparándolo con las capturas de pantalla de iOS y web; se considera terminado cuando los colores de borde de Android siguen siendo correctos para el caso de radio reportado.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- android, react-native
- Área
- mobile
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100