2013-07-07 6 views
1

У меня есть текстовое поле с подсказкой, но я хочу, чтобы подсказка всегда отображалась, даже когда есть вход в TB. Пример - это поле «Кому» в приложении Gmail.Editbox Hint - всегда показывать подсказку

+1

Я не думаю, что это подсказка, вы можете видеть, что курсор начинается только после «To». вы можете, однако, имитировать его, используя LinearLayout, если вы согласитесь с этим подходом, я составу полный ответ. –

+0

Звучит неплохо, не против? –

+1

Нет проблем - добавлен ответ, я рекомендую вам использовать номер опции 3, сообщите мне, есть ли у вас какие-либо проблемы. –

ответ

2

Есть 3 подхода можно использовать (спойлер - использование номер 3), так как уже упоминалось в моем комментарии в примере Gmail, это не фактическая подсказка:

  1. Использование линейного компоновщика , получить более чистый взгляд на мой взгляд:

    <LinearLayout android:layout_width="fill_parent" 
          android:layout_height="wrap_content"> 
    <TextView android:text="@string/Hint" 
          android:layout_margin="5dp" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content"/> 
    <EditText android:layout_width="fill_parent" 
          android:inputType="text" 
          android:layout_height="wrap_content"/>  
    </LinearLayout> 
    
  2. использованием относительного макета, получение результата, который имитирует приложение Gmail:

    Примечание: может быть проблематичным, так как текст будет отображаться в верхней части подсказки см раствор 3.

    <RelativeLayout android:layout_marginTop="10dp" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content"> 
        <TextView android:text="@string/Hint" 
          android:paddingLeft="10dp" 
          android:layout_marginBottom="0dp" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content"/> 
        <EditText android:layout_width="fill_parent" 
          android:inputType="text" 
          android:layout_height="wrap_content"/>  
    

    Результат как показано в этом изображении:

    Custom Permanent Hint

    Редактировать:

  3. используя Drawable:

    Это кажется лучшим решением (я лично только что создал его из отсекать в 1: дисплей 1 из TextView, будет правильными измерения таким образом), это позволит уборщик код макета, и текст будет знать о Drawable:

    <RelativeLayout android:layout_marginTop="10dp" 
        android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          > 
    <EditText android:layout_width="fill_parent" 
          android:inputType="text" 
          android:gravity="top" 
          android:drawableLeft="@drawable/Hint" 
          android:layout_height="wrap_content"/>  
    

    Drawable Hint

0

Первое, что пришло в голову, это вставить два относительных макета layoutText. Первый раз в секунду. В верхней части этого - положите фон как android.R.color.transparent Работайте с одним из лучших элементов! В приведенном ниже пункте - установите подсказку (что вы хотите) и попробуйте поместить текст. Возможно, у вас будет спецификация заполнения первого элемента верхнего, чтобы показывать смазку.

Ох. И вот еще. Возможно, это будет сделано для редактирования исходного фонового изображения, но это плохо для масштабируемости.

Смежные вопросы