2017-10-16 1 views
3

우선, 저는 Xamarin Forms에 아주 새로운 제품입니다. Android에서 입력 입력에 대해 표시되는 최종선을 제거해야합니다. iOS에서는 정상적으로 표시됩니다. 좀 연구를 본 것으로 나타났습니다 :엔트리에서 결말을 없애기위한 스타일을 적용해야합니다.

<style name="NoBaseline" parent="android:style/Widget.EditText"> 
    <item name="android:background">#D3D3D3</item> 
</style> 

는 단순히 밑줄 입력 상자의 배경색과 같은 색하여 트릭을 할해야합니다. 내 styles.xml 파일에이 코드를 넣었지만 이 스타일 을 적용 할 필요가 있지만이 코드는 어디서 확실하지 않습니다. newb에 대한 도움은 크게 감사하겠습니다.

여기에 전체 파일입니다 :

<?xml version="1.0" encoding="UTF-8"?> 
<resources> 
    <style name="MyTheme" parent="MyTheme.Base"> 
    </style> 

    <style name="MyTheme.Base" 
      parent="Theme.AppCompat.Light.DarkActionBar"> 
     <item name="windowNoTitle">true</item> 
     <item name="windowActionBar">false</item> 
     <item name="colorPrimary">#2196F3</item> 
     <item name="colorPrimaryDark">#1976D2</item> 
     <item name="colorAccent">#FF4081</item> 
     <item name="windowActionModeOverlay">true</item> 
     <item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item> 
    </style> 

    <style name="NoBaseline" parent="android:style/Widget.EditText"> 
     <item name="android:background">#D3D3D3</item> 
    </style> 

    <style name="AppCompatDialogStyle" 
      parent="Theme.AppCompat.Light.Dialog"> 
     <item name="colorAccent">#FF4081</item> 
    </style> 

    <style name="Splash" parent ="Theme.AppCompat.Light.NoActionBar"> 
     <item name="android:windowDisablePreview">true</item> 
    </style> 
    <style name="MyTheme.Splash" 
      parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="android:windowBackground">@drawable/splash_screen</item> 
     <item name="android:windowNoTitle">true</item> 
     <item name="android:windowFullscreen">true</item> 
    </style> 
</resources> 
+0

전체 styles.xml 코드를 게시하여 올바르게 작성했는지 확인할 수 있습니다. 기본 스타일은 Visual Studio의 xamarin 양식에 대한 프로젝트 템플릿에 의해 자동으로 설정됩니다. –

+0

오케이 내가 전체 파일을 게시했습니다 – Ryan

+0

그래서 내가 뭔가 잘못 했습니까 ??? – Ryan

답변

3
당신이 연구하는 동안이, here is a solution 방금 ​​밑줄을 제거하려는 경우 아마 조금 더 간단하다 dkudelko에 의해 Github에서에 게시 보지 못했어요 경우

.

이렇게하려면 단순히 NoUnderlineEntry라는 Android 프로젝트의 클래스를 만든 다음이 코드를 추가하십시오.

using <YourApp>.Droid; 
using Xamarin.Forms; 
using Xamarin.Forms.Platform.Android;  

[assembly: ExportRenderer(typeof(Entry), typeof(NoUnderlineEntry))] 
namespace <YourApp>.Droid 
{ 
    public class NoUnderlineEntry : EntryRenderer 
    { 
     protected override void OnElementChanged(ElementChangedEventArgs<Entry> e) 
     { 
      base.OnElementChanged(e); 
      Control?.SetBackgroundColor(Android.Graphics.Color.Transparent); 
     } 
    } 
} 

앱의 이름으로 교체 한 후

, 당신은 투명하게 제어 배경색을 설정하는 안드로이드의 기본 Entry을 재정의하는 사용자 정의 렌더러를 만든 것입니다.

Here is documentationEntry에 대한 사용자 지정 렌더러를 만듭니다.

** 참고 : 개인적으로 테스트하지는 않았지만 여러 사람들이 작동한다고 의견을 밝혔습니다.

+0

저는 ' 적어도 Xamarin.Android가 아닌 다중 플랫폼에서 사용하는 지시어는 작동하지 않으며 ExportRenderer도 사용하지 않습니다. 나는 이것을 시도했지만 내 솔루션에 그것을 적응시키는 방법을 모른다. – Ryan

+0

VS에서 솔루션 탐색기를 보면 여러 프로젝트가 있습니까? 일반적으로 Xamarin.Forms에는 공유 코드 (페이지, API 호출 등)와 개별 플랫폼 프로젝트 (App.Droid, App.iOS 등)가있는 Portable Class Library (PCL) . 솔루션에 다른 프로젝트가 있습니까? – cvanbeek

+0

예. 있습니다. 내 로그인 페이지가 공유 파트에 있고 styles.xml이 .Droid 파트에 있습니다. – Ryan

관련 문제