2013-11-11 1 views
4

Я размышлял с crouton, и после создания всплывающего окна customView cruuton я заметил 2 вещи; - макет слегка изменен при создании и будет исправлен, если просмотр будет обновлен - нет способа добавить стиль, чтобы сделать пользовательский гребень, или я не знаю, как это сделать ... Кто-нибудь, пожалуйста, предоставьте способ делать каждый из них аккуратноCrouton CustomView с бесконечной продолжительностью

Crouton CREAT код:

View crouton_view = getLayoutInflater().inflate(R.layout.crouton_layout, null); 
Crouton Date_crounton = Crouton.make(this, crouton_view); 
crouton_view.setBackgroundColor(Color.rgb(00, 153, 204)); 
Date_crounton.show(); 

Компоновка код:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/crouton_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<EditText 
    android:layout_width="match_parent" 
    android:layout_height="50dp" /> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:background="#b4b4b4" /> 
</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 

    <Button 
     android:id="@+id/crouton_cancel" 
     style="?android:attr/actionButtonStyle" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="Cancel" 
     android:textSize="14sp" /> 

    <ImageView 
     android:layout_width="1dp" 
     android:layout_height="30dp" 
     android:layout_gravity="center_vertical" 
     android:background="#b4b4b4" /> 

    <Button 
     android:id="@+id/crouton_ok" 
     style="?android:attr/actionButtonStyle" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="OK" 
     android:textSize="14sp" /> 
</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="5dp" 
     android:background="#b4b4b4" /> 
</LinearLayout> 

ответ

0

Да, нет способа добавить Style в Crouton с пользовательским представлением. Но вы можете добавить Configuration.

Если вы хотите обновить представление, вам необходимо оставить ссылку за пределами Crouton и обновить ее самостоятельно.

Также я не совсем уверен, что использование Crouton в качестве своего рода модального диалога - это хорошая вещь с точки зрения UX.

+0

Спасибо за помощь, кажется, придется добавить к библиотеку использовать стиль Что касается UX точки зрения, то, как вы добавляете crouton, а не это само по себе, я думаю, что правильная реализация будет хорошо выглядеть – alk

+0

Простите, я не понимаю. Это еще один вопрос? – keyboardsurfer

4

Я использую этот код для моего гренок:
вы можете использовать это:

final Configuration CONFIGURATION_INFINITE = new Configuration.Builder() 
           .setDuration(Configuration.DURATION_INFINITE) 
           .build(); 
final Crouton infiniteCrouton; 
infiniteCrouton = Crouton.makeText(this, "TEXT", Style.INFO); 
infiniteCrouton.setConfiguration(CONFIGURATION_INFINITE); 
infiniteCrouton.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
            Crouton.hide(infiniteCrouton); 
            } 
           }); 
infiniteCrouton.show(); 
+0

Я хочу добавить это в макет фрейма, как этот Crouton.makeText (MainActivity.this, «Пожалуйста, проверьте ваше интернет-соединение», Style.ALERT, R.id.main_crouton) .setConfiguration (новый Configuration.Builder(). SetDuration() Configuration.DURATION_INFINITE) .build()). шоу() ;. Как я могу достичь этого –

10

Попробуйте использовать этот следующий код

View customView = getActivity().getLayoutInflater().inflate(R.layout.crouton_addexam, null); 
final Configuration CONFIGURATION_INFINITE = new Configuration.Builder().setDuration(Configuration.DURATION_INFINITE).build(); 
final Crouton crouton = Crouton.make(getActivity(),customView,R.id.btnTest,CONFIGURATION_INFINITE); 
crouton.setConfiguration(new Configuration.Builder().setDuration(Configuration.DURATION_INFINITE).build()); 
test.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
      crouton.hide(); 

    } 
}); 
+0

Благодаря @Joseph ALbert Madia для ваших входов это действительно помогает. –

+0

@Joseph ALbert Madia Привет, почему бесконечная конфигурация предоставляется дважды? 1. В качестве параметра метода 'make' 2. Как параметр метода setConfiguration – Singed

+0

Я хочу добавить это в макет фрейма, как этот Crouton.makeText (MainActivity.this,« Пожалуйста, проверьте ваше интернет-соединение », Style.ALERT, R.id.main_crouton) .setConfiguration (новый Configuration.Builder(). SetDuration (Configuration.DURATION_I NFINITE) .build()). Sh ow() ;. Как я могу достичь этого –