-
Notifications
You must be signed in to change notification settings - Fork 24.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Text in FlatList is not selectable on Android #26264
Comments
Thanks for submitting your issue. Can you take another look at your description and make sure the issue template has been filled in its entirety? 👉 Click here if you want to take another look at the Bug Report issue template. |
Also noticed this. I just upgraded my app from React Native 0.57.4 to 0.60.5 and now I can't select text on Android. |
Text component rendered in FlatList is not selectable even if selectable={true} is specified. |
I curse the day I let React Native into my life |
Confirmed in 0.59.8 too, spent a good 30 minutes trying to figure out why this wasn't working on an Android 9. |
Can confirm, the Text component is selectable, but when rendered as a FlatList element, it is not selectable regardless of the 'selectable' prop. |
In my case I could remove the flat list, and use just a scroll view, but this isn't the ideal. I even did a if for the platform.OS, ios uses flat list, Android uses scroll view |
I have this problem too. Text component can't selectable on FlatList.. |
Same problem here |
Same problem in 0.59.10 |
|
Expo SDK 35.0.0 also has this problem. RN 0.59.8.
|
Added |
Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community's attention? This issue may be closed if no further activity occurs. You may also label this issue as a "Discussion" or add it to the "Backlog" and I will leave it open. Thank you for your contributions. |
I'm on Expo SDK 37 now (RN 0.61.4). Still need |
as displayed in the following Snack adding |
That's not a fix -- it's a workaround. It sacrifices |
This comment has been minimized.
This comment has been minimized.
SOLVED I'm preparing a PR, applying the same solution from #28852 adding @Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
if (mContainsImages && getText() instanceof Spanned) {
Spanned text = (Spanned) getText();
TextInlineImageSpan[] spans = text.getSpans(0, text.length(), TextInlineImageSpan.class);
for (TextInlineImageSpan span : spans) {
span.onAttachedToWindow();
}
}
super.setTextIsSelectable(true);
} I am preparing the PR. Thanks 😃 I will need to verify for regression of functionalities included in a0268a7 |
Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community's attention? This issue may be closed if no further activity occurs. You may also label this issue as a "Discussion" or add it to the "Backlog" and I will leave it open. Thank you for your contributions. |
Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, please feel free to create a new issue with up-to-date information. |
Actually there is another workaround which does not require to disable removeClippedSubviews. Example:
|
This issue should not been closed. My pr #28952 was written to fix this issue, I can improve the pr but please don't close the issue. |
The problem still exists on React Native Settings Thank you, @fabriziobertoglio1987, I hope they pay attention to your PR! |
Summary: This issue fixes #26264 fixes #27107 Text is not selectable inside a FlatList on Android. The solution is to invalidate the ReactTextView after a change of the selectable prop. If the view is visible, onDraw(android.graphics.Canvas) will be called at some point in the future and make the Text selectable. ## Changelog <!-- Help reviewers and the release process by writing your own changelog entry. For an example, see: https://github.com/facebook/react-native/wiki/Changelog --> [Android] [Fixed] - Fix non selectable Text in FlatList Pull Request resolved: #28952 Test Plan: **<details><summary>CLICK TO OPEN TESTS RESULTS</summary>** <p> The issue was demonstrated in the following [snack](https://snack.expo.io/fabrizio.bertoglio/selectable-bug-in-flatlist) (more info in issue #26264). The solution is: 1) Calling `invalidate()` from [setSelectableText][1] after changing the `selectable` prop and `mSelectableText` value. [`invalidate()`](https://developer.android.com/reference/android/view/View#invalidate()) triggers the `onDraw` callback. [1]: https://github.com/fabriziobertoglio1987/react-native/blob/8027524947cafd5cbdc492e4ef9c92b346fe23fc/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java#L427-L430 2) calling `setTextIsSelectable(mSelectableText);` from the [`onDraw`][2] callback [2]: https://github.com/fabriziobertoglio1987/react-native/blob/8027524947cafd5cbdc492e4ef9c92b346fe23fc/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java#L456-L460 The example below is availabe in RNTester FlatList example. Two options (`onPressDisabled` and `textSelectable`) have been added to test the functionality inside a FlatList. <p align="center"> <img src="https://user-images.githubusercontent.com/24992535/82672536-c2e74d80-9c40-11ea-8fd8-156bfacfac8a.gif" width="200" height="" /> </p> </p> </details> Reviewed By: ShikaSD Differential Revision: D30000870 Pulled By: lunaleaps fbshipit-source-id: 4851a294960df0af057d006793aa9ba97c51e3f9
React Native version: 0.60.5
Steps To Reproduce
Describe what you expected to happen:
Need to be able to select Text in FlatList.
Snack, code example, screenshot, or link to a repository:
Snack: https://snack.expo.io/@maltoze/selectable-bug-in-flatlist
The text was updated successfully, but these errors were encountered: