저는 VS Community 2017의 Xamarin Android 안의 앱에서 작업하고 있습니다. Popup
을 FAB - FloatingActionButton
에서 시작하고 싶습니다. 내가 별도로 팝업 xml 레이아웃을 만들었고 팝업을 시작할 때 디버거가 예외를 throw하지만 표시되는 오류 코드가 없으므로 문제의 원인을 알지 못합니다.코드에서 팝업을 열면 예외가 발생합니다
내 생각 엔 팝업 용 XML 레이아웃 파일에 문제가있는 것 같습니다. 나는 그것을 여러 번 확인했지만 모든 것이 나에게 괜찮은 것처럼 보인다. 안드로이드의 RelativePanel
은 UWP와 크게 다르며 어쩌면 내가 잘못하고있는 것일 수도 있습니다.
, 여기에 코드 ... 팝업 레이아웃 :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp">
<TextView
android:text="Sort By:"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:id="@+id/moviesSortByText"
android:minHeight="28dp"
android:gravity="left|center_vertical" />
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/moviesSortSpinner"
android:minWidth="120dp"
android:minHeight="28dp"
android:layout_alignParentEnd="true"
android:layout_toRightOf="@id/moviesSortByText" />
<TextView
android:text="Genre:"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:id="@+id/moviesGenresText"
android:layout_below="@id/moviesSortByText"
android:minHeight="28dp"
android:gravity="left|center_vertical" />
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/moviesSortByText"
android:id="@+id/moviesGenresSpinner"
android:minWidth="120dp"
android:minHeight="28dp"
android:layout_alignParentEnd="true"
android:layout_toRightOf="@id/moviesGenresText" />
<TextView
android:text="Country:"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:id="@+id/moviesCountryText"
android:layout_below="@id/moviesGenresText"
android:minHeight="28dp"
android:gravity="left|center_vertical" />
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/moviesGenresText"
android:id="@+id/moviesCountrySpinner"
android:minWidth="120dp"
android:minHeight="28dp"
android:layout_alignParentEnd="true"
android:layout_toRightOf="@id/moviesCountryText" />
</RelativeLayout>
활동에 뒤에 코드 :
moviesOptionsBtn = FindViewById<FloatingActionButton>(Resource.Id.moviesOptionsFAB);
moviesOptionsBtn.Click += MoviesOptionsBtn_Click;
private void MoviesOptionsBtn_Click(object sender, EventArgs e)
{
// create a flyout with 3 spinners for sorting, genres and countries
var popupView = LayoutInflater.Inflate(Resource.Layout.moviesOptionsPopupLayout, null);
var popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent, true)
{
Touchable = true,
Focusable = true,
OutsideTouchable = true
};
// find spinners and fill them with values
sortSpinner = popupView.FindViewById<Spinner>(Resource.Id.moviesSortSpinner);
genreSpinner = popupView.FindViewById<Spinner>(Resource.Id.moviesGenresSpinner);
countrySpinner = popupView.FindViewById<Spinner>(Resource.Id.moviesCountrySpinner);
sortSpinner.Adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerItem, Android.Resource.Layout.SimpleSpinnerDropDownItem, ViewHelper.SortList);
genreSpinner.Adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerItem, Android.Resource.Layout.SimpleSpinnerDropDownItem, ViewHelper.GenresList);
countrySpinner.Adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerItem, Android.Resource.Layout.SimpleSpinnerDropDownItem, ViewHelper.CountryList);
// register selections
sortSpinner.ItemSelected += MoviesOptionsSpinner_ItemSelected;
genreSpinner.ItemSelected += MoviesOptionsSpinner_ItemSelected;
countrySpinner.ItemSelected += MoviesOptionsSpinner_ItemSelected;
popupWindow.ShowAsDropDown(moviesOptionsBtn);
}
FAB
괜찮 표시되고 예외가 후에 만 발생합니다 마지막 줄. 다른 모든 코드는 정상적으로 작동하는 것 같습니다.
누군가 내 코드를보고 내가 잘못하고있는 것이 있는지 알려 줄 수 있습니까?
우선 : 당신은 프로젝트를 청소 했습니까? IDE를 다시 시작하셨습니까? 상대방 레이아웃에서 모든 어린이를 삭제하고 하나씩 테스트 해보세요. 아마 어린이 문제 일 수도 있습니다. 또한 나는 아무런 실수도 없을 것이라고 믿을 수 없다. 안드로이드 로그를 확인하십시오. VS로 개발 중입니까? 그렇다면 예외가 발생하면 "계속"버튼을 다시 누르는 옵션이있을 수 있습니다. 그렇게하면 디버거가 예외를 발생시킬 수 있습니다. 행운을 빕니다! – Csharpest
새 ArrayAdapter (this, Android.Resource.Layout.SimpleSpinnerItem, Android.Resource.Layout.SimpleSpinnerDropDownItem, ViewHelper.SortList) 메소드를 확인하려면 https : //developer.android.com/reference/android 링크를 참조하십시오. /widget/ArrayAdapter.html#ArrayAdapter(android.content.Context, int, int, T []), 세 번째 매개 변수가 잘못되었거나 레이아웃을 표시 할 수 있습니까? –
https://developer.android.com/samples/Notifications/Application/res/layout/simple_spinner_item.html, 이것은 'SimpleSpinnerItem' 레이아웃입니다. –