2015-06-30 2 views
0

У меня есть искатель, что, когда я касаюсь поискового бара и обновляю его положение, моя форма будет перестраиваться, казалось бы, «волшебно». Например, если стрелка находится в верхней части моей формы, когда я просматриваю форму, и я начинаю менять позицию в поисковой строке, вся форма будет прокручиваться назад и последовательно помещать поисковую панель в нижнюю часть формы.Android: поисковая система меняет форму позиции

У меня есть родительская форма в виде прокрутки. Вложенная внутри - линейная компоновка со всеми моими относительными макетами внутри этого. Вот соответствующий код. Если требуется больше кода, пожалуйста, дайте мне знать.

XML:

   <RelativeLayout 
       android:id="@+id/Turns_Box" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/Prev_Box" 
       android:layout_margin="5dp" 
       > 

       <TextView 
        android:id="@+id/Turns_Text" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/Turns_Text" 
        android:textSize="25sp" 
        android:layout_marginStart="5dp" 
        android:layout_marginLeft="5dp" 
        /> 

       <SeekBar 
        android:id="@+id/Turns_Value" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_below="@+id/Turns_Text" 
        android:layout_alignParentLeft="true" 
        android:layout_alignParentStart="true" 
        android:layout_marginStart="5dp" 
        android:layout_marginLeft="5dp" 
        android:max="25" 
        /> 

       <TextView 
        android:id="@+id/Turns_Value_Text" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_below="@id/Turns_Value" 
        android:textSize="20sp" 
        android:layout_marginStart="5dp" 
        android:layout_marginLeft="5dp" 
        android:layout_marginBottom="10dp" 
        /> 

      </RelativeLayout> 

JAVA:

 // Actual Turns 
    SeekBar actualTurnsValue = (SeekBar)findViewById(R.id.Turns_Value); 
    turnsValueText = (TextView)findViewById(R.id.Turns_Value_Text); 
    turnsValueText.setFocusable(false); 
    actualTurnsValue.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
      if (fromUser) { 
       turnsValueText.setText(progress + 5 + " Full Revolutions"); 
      } 
     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 
     } 

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 
      graphicAttributes.setActualTurns(Integer.toString(seekBar.getProgress() + 5)); 
     } 
    }); 

Пожалуйста, помогите!

ответ

0

Ну, похоже, что я оставил неопределенное представление о том, что происходит. Все мои взгляды не имели «настраиваемого» набора. Поэтому, когда я создал свое первое scrollview, и никакой контроль не был настроен на фокус, Android выбирает первый подходящий элемент управления, который хочет сосредоточиться. Это вызвало некоторые странные функции в моем коде. Нашел его на SO от ответа здесь:

https://stackoverflow.com/a/9690661/3109213

Так что я просто установить свою вложенную LinearLayout иметь:

android:focusableInTouchMode="true"