2017-03-03 12 views
6

पर सही संरेखित करें मेरे पास एक टेक्स्ट इनपुटपुटआउट के भीतर एक एडिटटेक्स्ट है। मैं एडिटटेक्स्ट के तहत त्रुटियों को प्रदर्शित करना चाहता हूं, लेकिन स्क्रीन के दाहिने सिरे पर गठबंधन करना चाहता हूं। Text Input LayoutTextInputLayout त्रुटि

त्रुटि इस तरह प्रदर्शित किया जाता है: Error right now

क्या मैं इसे की तरह लग रहे हैं: What I want

मेरे एक्सएमएल यह है:

यह मैं वर्तमान में क्या है

 <android.support.design.widget.TextInputLayout 
      android:id="@+id/text_input_email" 
      style="@style/forgot_pass_text_inputlayout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/tv_enter_email_message" 
      android:layout_marginTop="@dimen/email_padding_top" 
      android:hintTextAppearance="@{forgotPasswordVM.hintTextAppearance}" 
      android:theme="@style/forgot_pass_til_state" 
      app:error="@{forgotPasswordVM.email.textInputError}"> 

      <EditText 
       android:id="@+id/actv_email" 
       style="@style/forgot_pass_edit_text" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:hint="@string/email_address" 
       android:imeActionId="@+id/btn_submit" 
       android:imeOptions="actionSend" 
       android:inputType="textEmailAddress" 
       android:maxLines="1" 
       android:onEditorAction="@{forgotPasswordVM.onEditorAction}" 
       android:singleLine="true" 
       app:binding="@{forgotPasswordVM.email.text}" /> 
     </android.support.design.widget.TextInputLayout> 

मैं हूं डेटा बाध्यकारी का उपयोग कर।

मैं पर दोनों EditText और TextInputLayout android:gravity="right" और android:layout_gravity="right" स्थापित करने की कोशिश की है। जिस तरह से मैं इसे चाहता हूं काम करता है।

मैंने विषय और शैली में सही गुरुत्वाकर्षण स्थापित करने का प्रयास किया है। त्रुटि पर कोई प्रभाव नहीं पड़ता है।

मैंने app:errorTextAppearance="@style/right_error" के भीतर लागू शैली पर सही गुरुत्वाकर्षण की कोशिश की है। यहां तक ​​कि यह काम नहीं करता है।

मैंने this link के बाद एक संरेखण चरण के साथ एक स्पैन करने योग्य स्ट्रिंगबिल्डर का उपयोग करके प्रोग्राम को सही तरीके से स्थानांतरित करने का प्रयास किया। यहां तक ​​कि यह मेरे लिए काम नहीं करता है।

मुझे यकीन नहीं है कि और क्या प्रयास करना है। कृपया सुझाव दे।

+2

त्रुटि 'टेक्स्ट व्यू' प्राप्त करने के लिए आप [मेरे उत्तर यहां] [http://stackoverflow.com/a/40706872) में से किसी एक विकल्प का उपयोग करने का प्रयास कर सकते हैं, और 'setGravity (Gravity.RIGHT)' पर कॉल करें । मैंने इसका परीक्षण नहीं किया है, लेकिन आईआईआरसी, त्रुटि 'टेक्स्ट व्यू' में 'match_parent' चौड़ाई है, इसलिए इसे आपके टेक्स्ट को संरेखित करना चाहिए जैसा कि आप वर्णन करते हैं। –

उत्तर

6

तो Mike's answer पर धन्यवाद, मैं समाधान को समझने में सक्षम था।

public class CustomTextInputLayout extends TextInputLayout { 

    public CustomTextInputLayout(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    @Override 
    public void setErrorEnabled(boolean enabled) { 
     super.setErrorEnabled(enabled); 

     if (!enabled) { 
      return; 
     } 

     try { 
      Field errorViewField = TextInputLayout.class.getDeclaredField("mErrorView"); 
      errorViewField.setAccessible(true); 
      TextView errorView = (TextView) errorViewField.get(this); 
      if (errorView != null) { 
       errorView.setGravity(Gravity.RIGHT); 
       LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
       params.gravity = Gravity.END; 
       errorView.setLayoutParams(params); 
      } 
     } 
     catch (Exception e) { 
      // At least log what went wrong 
      e.printStackTrace(); 
     } 
    } 
} 

अब मैं बस CustomTextInputLayout के साथ मेरी TextInputLayout लाए गए:

मैं एक कस्टम वर्ग बनाया। एक आकर्षण की तरह काम करता है। बहुत बहुत धन्यवाद Mike। काश मैं इस जवाब के लिए आपको और अधिक क्रेडिट कर सकता हूं।

+0

नमस्ते, मैं संपादन संदेश और सही गठबंधन कोने पर त्रुटि संदेश दिखाने की कोशिश कर रहा हूं, कोई विचार है कि मैं यह कैसे करता हूं? – ViVekH

+0

@ViVekH, क्या आप अपनी इच्छा के अनुसार थोड़ा और समझा सकते हैं? – Rachit

संबंधित मुद्दे