내 응용 프로그램의 모든 스피너 글로벌 스타일은 2017안드로이드 : 나는 Visual Studio에서 자 마린 안드로이드를 사용하고
나는 모두가 완벽하게 작동하고있는 XML 레이아웃에서 생성되는 몇 가지 기존 스피너는 정확히 어떻게 스타일 한 I 그들을 보길 원해. 다음의 코드는 일반적으로 : 좋은 작품과 내 작은 배경 이미지가 모두 올바르게 렌더링 즉
<Spinner
android:spinnerMode="dialog"
android:id="@+id/SpnProject"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:layout_marginBottom="8dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:background="@drawable/myspinner"
android:prompt="@string/project_prompt" />
..
가 지금은 동적으로 코드를 통해 100 % 다른 스피너를 만들려고하고있다 (안 레이아웃 XML). 내 코드로 동적으로 LinearLayout 내부에 넣을 것입니다. 이들 중 하나를 만들려면이 코드는 일반적으로 :
Spinner CustomPicker = new Spinner(TheActivity);
List<CustomAttributeOption> AttOptions = db.GetCustomAttributeOptions(ThisAtt.AttributeId);
ArrayAdapter<CustomAttributeOption> AttOptionsAdapter = new ArrayAdapter<CustomAttributeOption>(Activity, Android.Resource.Layout.SimpleSpinnerDropDownItem, AttOptions);
CustomPicker.Adapter = AttOptionsAdapter;
customAttributeHolder.AddView(CustomPicker, StackerPosition);
이 코드는 모든 완전히 작동하고 새로운 동적 스피너 내 양식에 나타납니다. 그러나 기본 스타일링이 있고 다른 스타일의 스피너와 동일한 스타일을 적용하고 싶습니다. 특히이 동적 스피너의 높이를 40dp로 지정하십시오. 어디에서라도 코드를 사용하여 layoutHeight = 40dp를 지정할 수없는 것 같습니다. styles/xml을 사용하여 완료해야합니까?
많은 활동을하면서 테마를 설정하고 내 활동에있는 모든 스피너의 스타일을 지정했지만 앱을 만들거나 실행하지 못했습니다.
이상적으로는 레이아웃 XML에서 layout_height 및 layout_width 값을 제거하고 싶습니다. 내 ENIRE PROJECT 종류의 모든 스핀을위한 글로벌 스타일처럼 어딘가에 한 번 정의했습니다.
개별 위젯에 대해 폭과 높이를 개별적으로 지정할 수 있습니까?
다시 한번 감사드립니다. SushiHangover. 방금 작동했습니다.이 작업은 아름답게 작동하며 아주 좋은 팁입니다. 필자의 경우 코드에 약간의 미묘한 변화를 주어야했다. 이것은 내 마지막 작동 진술입니다 (조각 내에서 호출 할 때). var CustomPicker = MyActivity.LayoutInflater.Inflate (Resource.Layout.dynamicspinner, myLinearLayout, false) Spinner; – Aaron
Hey Sushi, 스태틱 스태커의 마크 업을 최소화 할 수 있는지 알고 계시나요? 그렇다면 동적 스터디 레이아웃과 마찬가지로 masterSpinner 레이아웃 파일에서 레이아웃과 스타일을 가져올 수 있습니까? : 같은 뭔가 <스피너 안드로이드 : ID = "@ + ID/SpnProject" 안드로이드 : 프롬프트 = "@ 문자열/project_prompt" 안드로이드 : 스타일 = "스타일 @/masterSpinner"/> – Aaron
가 도움이 @Aaron 다행, Fragment의 OnCreateView는 또한 당신의 활동에 대한 하드 - 레퍼런스를 유지하고 싶지 않을 경우에 대비해서'LayoutInflater'를 전달합니다. – SushiHangover