title: How to make Listview of unique buttons in Flutter?
body: <p>I'm developing an app that creates a list of audio recordings. For every recording I want the app to generate different interface for recording and playing the audio, some sort of form that keeps the name and unique id of the recording. It looks like
  <a href="https://i.stack.imgur.com/Zf9lp.png" rel="nofollow noreferrer">this</a></p>
  <p>Unfortunately when i press the play button on one of those recordings, every single play button for all recordings toggles from Icons.play to Icons.stop. I only want the desired button to change icon, I tried using Keys and GlobalKeys but with no success.</p>
  <p>code for audioForm looks like this</p>
  <pre><code>  _audioForm(double screenWidth, double screenHeight, recordi) =&gt; Padding(
          padding: const EdgeInsets.only(top: 12.0),
          child: Row(
            children: [
              SizedBox(
                height: screenHeight / 9,
                width: screenWidth * (2 / 10),
                child: TextField(
                  style: TextStyle(
                    fontSize: 24.0,
                  ),
                  decoration: InputDecoration(
                      border: OutlineInputBorder(), hintText: 'Key'),
                ),
              ),
              SizedBox(
                height: screenHeight / 9,
                width: screenWidth * (5 / 10),
                child: TextField(
                  style: TextStyle(fontSize: 24.0),
                  decoration: InputDecoration(
                      border: OutlineInputBorder(), hintText: 'Name'),
                ),
              ),
              SizedBox(
                width: screenWidth * 1.5 / 10,
                child: Center(
                  child: InkWell(
                    key: Key(&quot;record&quot;),
                    child: Icon(
                      Icons.circle,
                      color: Colors.red,
                    ),
                    onTap: () {
                      _scaffoldKey.currentState.showBottomSheet(
                          (BuildContext context) =&gt; _recordBottomSheet(
                              screenWidth, screenHeight, recordingList[recordi]));
                    },
                  ),
                ),
              ),
              SizedBox(
                width: screenWidth * 1.5 / 10,
                child: Center(
                  child: InkWell(
                    child: _isPlaying
                        ? Icon(
                            Icons.stop,
                            size: 35,
                          )
                        : Icon(
                            Icons.play_arrow,
                            size: 35,
                          ),
                    onTap: () {
                      if (_isPlaying == true)
                        _isPlaying = false;
                      else
                        _isPlaying = true;
                      setState(() {
                      });
                      // }
                    },
                  ),
                ),
              )
            ],
          ),
        );
  </code></pre>
  <p>I excluded code regarding sound operations, since it's unimportant for this case, I only left the bool that toggles button. I would really appreciate some advice on how to make every button unique to a recording.</p>
  <p>And this is Listview, in which audio forms are stored</p>
  <pre><code>child: ListView.builder(
                itemCount: recordingList.length + 1,
                itemBuilder: (context, index) {
                  if (index &lt; recordingList.length) {
                    return _audioForm(screenWidth, screenHeight, index);
                  } else {
                    return _addButton();
                  }
                }),
  </code></pre>