Skip to content

Instantly share code, notes, and snippets.

View vasyafromrussia's full-sized avatar
🦖

Vasily Styagov vasyafromrussia

🦖
View GitHub Profile
class _MyHomePageState extends State<MyHomePage> {
final GlobalKey sliderKey = GlobalKey();
// ...
static const platform = const MethodChannel('sample/gesture');
@override
void initState() {
super.initState();
class MainActivity : FlutterActivity() {
companion object {
private const val CHANNEL = "sample/gesture";
}
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL)
.setMethodCallHandler { call, result ->
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
private void setSystemGestureExclusionRects(ArrayList<Rect> rects) {
if (Build.VERSION.SDK_INT < 29) {
return;
}
Window window = activity.getWindow();
View view = window.getDecorView();
view.setSystemGestureExclusionRects(rects);
}
@vasyafromrussia
vasyafromrussia / expandable_5.dart
Created March 14, 2020 12:07
Flutter expandable text step 3
class _ExpandableTextState extends State<ExpandableText> {
static const String _ellipsis = "\u2026\u0020";
String get _lineEnding => "$_ellipsis${widget.moreSpan.text}";
// ...
@override
Widget build(BuildContext context) => LayoutBuilder(
builder: (context, constraints) {
final maxLines = widget.maxLines;
@vasyafromrussia
vasyafromrussia / expandable_4.dart
Created March 14, 2020 12:07
Flutter expandable text step 2
extension _TextMeasurer on RichText {
List<TextBox> measure(BuildContext context, Constraints constraints) {
final renderObject = createRenderObject(context)..layout(constraints);
return renderObject.getBoxesForSelection(
TextSelection(
baseOffset: 0,
extentOffset: text.toPlainText().length,
),
);
}
@vasyafromrussia
vasyafromrussia / expandable_3.dart
Created March 14, 2020 12:06
Flutter expandable text step 1
class ExpandableText extends StatefulWidget {
final TextSpan textSpan;
final TextSpan moreSpan;
final int maxLines;
const ExpandableText({
Key key,
this.textSpan,
this.maxLines,
this.moreSpan,
@vasyafromrussia
vasyafromrussia / expandable_2.dart
Last active March 14, 2020 12:20
Flutter text painter
class MyTextPainter extends CustomPainter {
final TextSpan text;
final int maxLines;
final String ellipsis;
MyTextPainter({this.text, this.ellipsis, this.maxLines}) : super();
@override
bool shouldRepaint(CustomPainter oldDelegate) => false;
@vasyafromrussia
vasyafromrussia / expandable_1.dart
Created March 14, 2020 12:01
Flutter simple expandable text
class ExpandableText extends StatefulWidget {
final String text;
final int maxLines;
const ExpandableText({Key key, this.maxLines, this.text}) : super(key: key);
@override
_ExpandableTextState createState() => _ExpandableTextState();
}
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val list = findViewById<RecyclerView>(R.id.list)
val adapter = MultiTypeAdapter()
list.layoutManager = LinearLayoutManager(this)