Skip to content

Instantly share code, notes, and snippets.

View Jatra's full-sized avatar

Tim Russell Jatra

  • Jatra Ltd
  • UK
View GitHub Profile
@Jatra
Jatra / MainActivity.kt
Created April 29, 2018 15:37
Kotlin drag to reorder recyclerview
package uk.co.jatra.recorder
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView
import android.support.v7.widget.helper.ItemTouchHelper
import android.support.v7.widget.helper.ItemTouchHelper.DOWN
import android.support.v7.widget.helper.ItemTouchHelper.UP
import android.view.LayoutInflater
@Jatra
Jatra / addColourSlider.dart
Created February 4, 2019 07:24
Add a widget
body: Center(
child: ColourSlider(),
),
@Jatra
Jatra / ColourSlider1.dart
Last active February 4, 2019 07:40
Initial Colour slider build
class ColourSlider extends StatefulWidget {
static final track = "track";
static final thumb = "thumb";
@override
_ColourSliderState createState() => _ColourSliderState();
}
class _ColourSliderState extends State<ColourSlider> {
@override
@Jatra
Jatra / ColourSliderDelagate1.dart
Created February 4, 2019 07:44
Initial delegate for colourslider
class _ColourSliderDelegate extends MultiChildLayoutDelegate {
@override
void performLayout(Size size) {
layoutChild(ColourSlider.track, BoxConstraints.loose(size));
positionChild(ColourSlider.track, Offset(0, 0));
layoutChild(ColourSlider.thumb, BoxConstraints.loose(size));
positionChild(ColourSlider.thumb, Offset(0, 0));
}
@override
void performLayout(Size size) {
var trackSize = layoutChild(ColourSlider.track, BoxConstraints.loose(size));
var thumbSize = layoutChild(ColourSlider.thumb, BoxConstraints.loose(size));
positionChild(ColourSlider.track, Offset(0, thumbSize.height/2 - trackSize.height/2));
positionChild(ColourSlider.thumb, Offset(-thumbSize.width/2, 0));
}
class _ColourSliderState extends State<ColourSlider> {
var fraction = 0.0;
@override
Widget build(BuildContext context) {
debugPaintPointersEnabled = true;
return GestureDetector(
onPanUpdate: (DragUpdateDetails details) {
RenderBox box = context.findRenderObject();
Offset localOffset = box.globalToLocal(details.globalPosition);