2011-07-25 11 views
5

Jestem zainteresowany dodawaniem dzielników do dzieci LinearLayout dynamicznie. W dokumentach widzę, że LinearLayout zawiera CONST "SHOW_DIVIDER_MIDDLE" wraz z metodami get i set divider. Czy ktoś może mi pokazać, jak go realizuję? Dzięki!Android + setDividerDrawable na LinearLayout?

"To nie działa"

układ xml:

<LinearLayout android:id="@+id/bar" 
     android:orientation="horizontal" 
     android:layout_height="40dip" android:layout_width="fill_parent" 
     android:background="@drawable/ab_background_gradient" android:gravity="right|center_vertical"> 

     <!-- sort button --> 
     <Button android:id="@+id/sortBtn" android:background="@drawable/defaultt" 
       android:layout_width="30dip" android:layout_height="30dip" android:onClick="sortThis" /> 

     <!-- add button --> 
     <Button android:id="@+id/addBtn" android:background="@drawable/defaultt" 
       android:layout_width="30dip" android:layout_height="30dip" android:onClick="addThis" /> 
    </LinearLayout> 

główny:

... 
private void setupViews() { 
     //bar 
     mBar = (LinearLayout) findViewById(R.id.bar); 
     mBar.setDividerDrawable(R.drawable.divider); 
} 

Odpowiedz

6

Trzeba przekonwertować identyfikator zasobu wrócisz z R.drawable.divider w rozciągliwej obiektu, ala:

import android.content.res.Resources; 
... 

public void onCreate(Bundle savedInstanceState) { 
    ... 

    Resources res = this.getResources(); 

    LinearLayout layout = new LinearLayout(this); 
    layout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE | LinearLayout.SHOW_DIVIDER_BEGINNING | LinearLayout.SHOW_DIVIDER_END); 
    layout.setDividerDrawable(res.getDrawable(R.drawable.divider)); 

    ... 
} 
... 

ta zakłada, że ​​masz plik o nazwie „divider.jpg” (lub podobny) w katalogu zasobów.

+3

To działa, ale zauważ, że setShowDividers został dodany na poziomie API 11 (Honeycomb). http://stackoverflow.com/questions/8304221/nosuchmethod-exception-for-setshowdividers – worked

+0

@worked możesz użyć IcsLinearLayout, który jest w ActionBarSherlock, jeśli chcesz, ale pamiętaj, że nie jest przeznaczony do użycia. istnieje również LinearLayoutICS, która znajduje się w bibliotece wsparcia –

+0

Xamarin Developers używają tego _tabLayout.SetDividerDrawable (Resources.GetDrawable (Resource.Drawable.divider)); –

Powiązane problemy