在本机上在Android上使用TextInput存在问题

时间:2018-12-03 02:01:28

标签: android react-native

我在React Native上使用android上的TextInput时遇到问题 我使用以下代码。

导出默认类App扩展组件{   render(){     返回(                  

<div id="plotSO">
<script type="text/javascript">

    var svg = dimple.newSvg("#plotSO",900, 500),
      chart=null,
      s1=null,
      s2=null,
      s3=null,
      x=null,
      y1=null,
      y2=null,
      y3=null;

    chart = new dimple.chart(svg);
    chart.setBounds(100, 100, 510, 305);
    x = chart.addMeasureAxis("x", "group");
    x.showGridlines = true;
    x.overrideMin = 1;
    y1 = chart.addMeasureAxis("y", "value");
    y2 = chart.addMeasureAxis("y", "value");
    y3 = chart.addMeasureAxis("y", "value");

    s1 = chart.addSeries( "group", dimple.plot.line,[x,y1]);
    s1.interpolation = "cardinal";
    s1.lineMarkers=true;
    s1.data=[{"group":1,"metric":"m1","value":112.5002},{"group":2,"metric":"m1","value":166.2608},{"group":3,"metric":"m1","value":164.3132}] ;
    y1.title="y1-title";

    s2 = chart.addSeries( "group", dimple.plot.line,[x,y2]);
    s2.interpolation = "cardinal";
    s2.lineMarkers=true;
    s2.data=[{"group":1,"metric":"m2","value":155.4},{"group":2,"metric":"m2","value":162.4},{"group":3,"metric":"m2","value":152.9}] ;
    y2.title="y2-title";

    s3 = chart.addSeries( "group", dimple.plot.line,[x,y3]);
    s3.interpolation = "cardinal";
    s3.lineMarkers=true;
    s3.data=[{"group":1,"metric":"m3","value":0.0451},{"group":2,"metric":"m3","value":0.0275},{"group":3,"metric":"m3","value":0.0226}] ;
    y3.title="y3-title";

    chart.draw();
</script>
</div>

} }

然后显示以下屏幕:

screenshot before tap TextInput

当我点击TextInput视图时,出现屏幕,就像使用keyboardavoidingview一样。

screenshot after tap TextInput

它在android上,但是在ios上没有任何作用。 我没有使用任何其他组件。

我的package.json如下:

  </View>
);

在Android上,尽管我从未使用过该组件,但为什么会有类似使用KeyboardAvoidingView的效果? 为什么在ios上还可以呢? 听到您的进步我感到非常高兴。 谢谢。

1 个答案:

答案 0 :(得分:1)

无论何时使用TextInput,建议您将Scrollview作为带有道具keyboardShouldPersistTaps="always"的父视图。每当键盘弹出时,这将创建均匀性。

已编辑:

<View style={{flex:1}}>
    <ScrollView keyboardShouldPersistTaps="always">
      <View style={{paddingTop:20}}> //Inside ScrollView flex doesn't work so use padding to control spacing 

          // Add your <TextInput> Tag here !!

       </View>
     </ScrollView>
</View>

希望我能为您提供帮助。