react-native-sortable-grid icon indicating copy to clipboard operation
react-native-sortable-grid copied to clipboard

itemHeight didn't work

Open zim-lee opened this issue 7 years ago • 9 comments

I set itemHeight property, but it didn't work,

zim-lee avatar Dec 17 '17 13:12 zim-lee

@zim-lee we can't really help you if you don't even copy paste a snippet of your code.

harrisrobin avatar Dec 18 '17 04:12 harrisrobin

@harrisrobin the example code can be review

zim-lee avatar Dec 18 '17 04:12 zim-lee

+1 itemHeight doesn't change a thing. I have both itemsPerRow and itemHeight set -- blocks are always squares.

rikur avatar Jan 24 '18 03:01 rikur

FYI: I was just being stupid. I used property blockWidth instead of itemWidth.

rikur avatar Jan 24 '18 03:01 rikur

+1 this is not working for me either. I've set itemsPerRow which works perfectly but itemHeight doesn't do anything. @tqc any advice?

<SortableGrid
  itemsPerRow={2}
  itemHeight={50}
>

cmeredith avatar Mar 12 '18 15:03 cmeredith

This is in ollija/react-native-sortable-grid/index.js

    console.log("Calculating grid size");
    `if (this.props.itemWidth && this.props.itemWidth < nativeEvent.layout.width) {`
      this.itemsPerRow = Math.floor(nativeEvent.layout.width / this.props.itemWidth)
      this.blockWidth = nativeEvent.layout.width / this.itemsPerRow
      this.blockHeight = this.props.itemHeight || this.blockWidth
    }
    else {
      this.blockWidth = nativeEvent.layout.width / this.itemsPerRow
      this.blockHeight = this.blockWidth
    }
    if (this.state.gridLayout != nativeEvent.layout) {
      this.setState({
        gridLayout: nativeEvent.layout,
        blockWidth: this.blockWidth,
        blockHeight: this.blockHeight
      })
    }
  }

First, itemHeight dosen't work without itemWidth

Second, In first Conditional branch, if (this.props.itemWidth && this.props.itemWidth < nativeEvent.layout.width) { It seems that your itemWidth must be smaller than nativeEvent.layout.width.

So you should add itemWidth and try various numbers on itemWidth.

          <SortableGrid
            blockTransitionDuration={200}
            activeBlockCenteringDuration={200}
            itemWidth={100}
            itemHeight={84}
            dragActivationTreshold={300}
            onDragRelease={ (itemOrder) => console.log("Drag was released, the blocks are in the following order: ", itemOrder) }
            onDragStart={ () => console.log("Some block is being dragged now!") } >

This is works on my app. Changed to a rectangle. 2018-06-12 14 41 15

masary2989 avatar Jun 12 '18 05:06 masary2989

The code on NPM is not the latest, cope the index.js from GitHub it's worked

yc507 avatar Jul 19 '18 08:07 yc507

@masary2989 's answer just save my life.

bomei avatar Dec 20 '18 03:12 bomei

Hi, Can you please update this code for dynamic width... Like 75% & 25% of elements in single row.

SivaprakashJeyaraj avatar Dec 10 '19 02:12 SivaprakashJeyaraj