<html devsite="true">
  <head>
    <title>RepeatMode</title>
{% setvar book_path %}/reference/kotlin/androidx/_book.yaml{% endsetvar %}
{% include "_shared/_reference-head-tags.html" %}
  </head>
  <body>
    <div id="metadata-info-block"></div>
    <h1>RepeatMode</h1>
    <p>
      <pre>enum <a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html">RepeatMode</a> : <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html">Enum</a></pre>
    </p>
    <div class="devsite-table-wrapper">
      <table class="jd-inheritance-table">
        <tbody>
          <tr>
            <td colspan="3"><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html">kotlin.Any</a></td>
          </tr>
          <tr>
            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;↳</td>
            <td colspan="2"><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html">kotlin.Enum</a></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;↳</td>
            <td colspan="1"><a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html">androidx.compose.animation.core.RepeatMode</a></td>
          </tr>
        </tbody>
      </table>
    </div>
    <hr>
    <p>Repeat mode for <code><a href="/reference/kotlin/androidx/compose/animation/core/RepeatableSpec.html">RepeatableSpec</a></code> and <code><a href="/reference/kotlin/androidx/compose/animation/core/VectorizedRepeatableSpec.html">VectorizedRepeatableSpec</a></code>.</p>
    <h2>Summary</h2>
    <div class="devsite-table-wrapper">
      <table class="responsive">
        <thead>
          <tr>
            <th colspan="100%"><h3>Enum Values</h3></th>
          </tr>
        </thead>
        <tbody class="list">
          <tr>
            <td width="40%"><code><a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html#Restart">Restart</a></code></td>
            <td>
              <p><code><a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html#Restart">Restart</a></code> will restart the animation and animate from the start value to the end value.</p>
            </td>
          </tr>
          <tr>
            <td width="40%"><code><a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html#Reverse">Reverse</a></code></td>
            <td>
              <p><code><a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html#Reverse">Reverse</a></code> will reverse the last iteration as the animation repeats.</p>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
    <div class="devsite-table-wrapper">
      <table class="responsive">
        <thead>
          <tr>
            <th colspan="100%"><h3>Public functions</h3></th>
          </tr>
        </thead>
        <tbody class="list">
          <tr>
            <td width="40%"><code><a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html">RepeatMode</a></code></td>
            <td>
              <div><code><a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html#valueOf(kotlin.String)">valueOf</a>(value:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>)</code></div>
              <p>Returns the enum constant of this type with the specified name.</p>
            </td>
          </tr>
          <tr>
            <td width="40%"><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html">Array</a>&lt;<a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html">RepeatMode</a>&gt;</code></td>
            <td>
              <div><code><a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html#values()">values</a>()</code></div>
              <p>Returns an array containing the constants of this enum type, in the order they're declared.</p>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
    <h2>Enum Values</h2>
    <div>
      <h3 class="api-name" id="Restart">Restart</h3>
      <pre class="api-signature no-pretty-print">val&nbsp;<a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html#Restart">RepeatMode.Restart</a>:&nbsp;<a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html">RepeatMode</a></pre>
      <p><code><a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html#Restart">Restart</a></code> will restart the animation and animate from the start value to the end value.</p>
    </div>
    <div>
      <h3 class="api-name" id="Reverse">Reverse</h3>
      <pre class="api-signature no-pretty-print">val&nbsp;<a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html#Reverse">RepeatMode.Reverse</a>:&nbsp;<a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html">RepeatMode</a></pre>
      <p><code><a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html#Reverse">Reverse</a></code> will reverse the last iteration as the animation repeats.</p>
    </div>
    <h2>Public functions</h2>
    <div><a name="valueOf-kotlin.String-"></a><a name="valueof"></a>
      <h3 class="api-name" id="valueOf(kotlin.String)">valueOf</h3>
      <pre class="api-signature no-pretty-print">fun&nbsp;<a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html#valueOf(kotlin.String)">valueOf</a>(value:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>):&nbsp;<a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html">RepeatMode</a></pre>
      <p>Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)</p>
      <div class="devsite-table-wrapper">
        <table class="responsive">
          <thead>
            <tr>
              <th colspan="100%">Throws</th>
            </tr>
          </thead>
          <tbody class="list">
            <tr>
              <td width="40%"><code>kotlin.IllegalArgumentException:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-illegal-argument-exception/index.html">kotlin.IllegalArgumentException</a></code></td>
              <td>
                <p>if this enum type has no constant with the specified name</p>
              </td>
            </tr>
          </tbody>
        </table>
      </div>
    </div>
    <div><a name="values--"></a><a name="values"></a>
      <h3 class="api-name" id="values()">values</h3>
      <pre class="api-signature no-pretty-print">fun&nbsp;<a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html#values()">values</a>():&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html">Array</a>&lt;<a href="/reference/kotlin/androidx/compose/animation/core/RepeatMode.html">RepeatMode</a>&gt;</pre>
      <p>Returns an array containing the constants of this enum type, in the order they're declared.</p>
      <p>This method may be used to iterate over the constants.</p>
    </div>
  </body>
</html>
