android single 회 전자 드롭 다운에서 여백 제거




spinner 뜻 (4)

아래 이미지와 같은 회 전자가 있습니다.

Spinner와 드롭 다운 사이의 왼쪽 x의 틈을 제거하려면 어떻게해야합니까? 가능한 한 API 요구 사항을 낮추기 위해 API8에서 작동하는 솔루션을 선호합니다.

나는 이것이 스피너 스타일의 layout_margin이 될 것이라고 추정했지만, 이 질문 을 읽은 후에는 불가능한 것처럼 보인다.

내 주제에는 내가 가지고있다.

<style name="AppTheme" parent="AppBaseTheme">        
        <item name="android:dropDownListViewStyle">@style/DropDownStyle</item>
    <item name="android:dropDownSelector">@style/DropDownStyle</item>                
</style>


<style name="DropDownTopStyle">

   <item name="android:clickable">true</item>
   <item name="android:background">@drawable/dropdowntop</item>

</style>

<style name="DropDownStyle">

   <item name="android:layout_width">fill_parent</item>
   <item name="android:layout_height">fill_parent</item> 
   <item name="android:layout_marginLeft">0dp</item> 
   <item name="android:layout_margin">0dp</item> 

   <item name="android:clickable">true</item>
   <item name="android:background">@drawable/dropdownback</item>
   <item name="android:popupBackground">@drawable/dropdownback</item>
   <item name="android:cacheColorHint">#FFF000</item>    
  </style>

고마워, 토마스.

추가; 코드에서 팝업을 직접 만들 수있는 방법이 있음을 알 수 있습니다. 필요한 경우 어댑터보기 팝업보기에 연결할 수 있습니까? (즉, 표시되는 목록). 전체 어댑터 동작을 처음부터 다시 만들려고 시도하는 것은 끔찍한 방법으로 보일 수 있습니다. 그러나 정상적인 팝업 동작을 비활성화하고 볼 수 있다면 짜증나는 오프셋없이 직접 팝업을 만들 수 있습니다.


t know it is possible, because all view item like Spinner, EditText, etc... are small images in the android SDK. You should check, is there any default padding in the 9patched SDK image, if yes, I think you can 않습니다 t know it is possible, because all view item like Spinner, EditText, etc... are small images in the android SDK. You should check, is there any default padding in the 9patched SDK image, if yes, I think you can t know it is possible, because all view item like Spinner, EditText, etc... are small images in the android SDK. You should check, is there any default padding in the 9patched SDK image, if yes, I think you can 수행 t know it is possible, because all view item like Spinner, EditText, etc... are small images in the android SDK. You should check, is there any default padding in the 9patched SDK image, if yes, I think you can 합니다. 또한 안드로이드 소스 코드에서 기본 Spinner 클래스를 확인하는 것을 잊지 마세요, 아마도 몇몇 트릭이 있습니다.


이것을 시도해보십시오, 이것이 효과가 있습니다.

    <style name="DropDownStyle">

   <item name="android:layout_width">0dp</item>

Spinner View를 확장하여 항목 목록을 표시하는 자체 AlertDialog를 만들거나 사용할 수있는 최신 버전 (API 16 이상)으로 만들 필요가있는 것 같습니다.

android:dropDownHorizontalOffset="-8dp"

자세한 내용을 보려면 여기를 클릭하십시오 : 열린 스피너의 위치를 ​​변경하는 방법?


너 뭐야 이런거야?

그렇다면 코드는 다음과 같습니다 (API 레벨 9까지 작동).

활동:

public class MainActivity extends Activity
{
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Spinner spinnerListOptions = (Spinner) findViewById(R.id.spinner);
        ArrayAdapter<CharSequence> adapterListOptions = ArrayAdapter.createFromResource(this, R.array.string_array,
            R.layout.spinner_item_top);
        adapterListOptions.setDropDownViewResource(R.layout.spinner_item_dropdown);
        spinnerListOptions.setAdapter(adapterListOptions);
    }
}

spinner_item_top.xml :

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="wrap_content"
      android:layout_height="29dp"
      android:textSize="12sp"
      android:gravity="center">
</TextView>

spinner_item_dropdown.xml :

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="wrap_content"
      android:layout_height="29dp"
      android:textSize="12sp"
      android:gravity="center">
</TextView>

activity_main.xml :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

   <Spinner
           android:id="@+id/spinner"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_centerInParent="true"/>

</RelativeLayout>

strings.xml :

<resources>
<string-array name="string_array">
    <item>item 1</item>
    <item>item 2</item>
    <item>item 3</item>
</string-array>
</resources>






android-spinner