Esiste un tag XML che posso utilizzare in un file di layout equivalente a ListView.addHeaderView()
?Esiste un tag XML equivalente a `ListView.addHeaderView '?
13
A
risposta
18
Ho scritto un semplice ListView
come il vostro requisito.
Declare attributo personalizzato in
attrs.xml
nella cartellavalue
:<resources> <declare-styleable name="HeaderListViewFromXML"> <attr name="headerView" format="reference"/> </declare-styleable> </resources>
Creare
HeaderListViewFromXML
classe estesaListView
public class HeaderListViewFromXML extends ListView { private int headerId; public HeaderListViewFromXML(Context context) { this(context, null); } public HeaderListViewFromXML(Context context, AttributeSet attrs) { this(context, attrs, 0); } public HeaderListViewFromXML(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.HeaderListViewFromXML, defStyle, defStyle); try { headerId = a.getResourceId(R.styleable.HeaderListViewFromXML_headerView, View.NO_ID); if (headerId != View.NO_ID) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View header = inflater.inflate(headerId, null); addHeaderView(header); } } finally { a.recycle(); } } }
Dichiarare personalizzato
HeaderListViewFromXML
inlayout.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <com.example.rewidget.HeaderListViewFromXML android:id="@+id/listWithHeader" android:layout_width="fill_parent" android:layout_height="150dp" android:layout_marginTop="60dp" android:background="#00FF00" // custom attribute. Point to layout in header1.xml app:headerView="@layout/header1" /> </RelativeLayout>
In Attività, utilizzare come normale
ListView
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView list = (ListView) findViewById(R.id.listWithHeader); String[] values = new String[] { "Android", "iPhone", "WindowsMobile", "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X", "Linux", "OS/2" }; ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values); list.setAdapter(adapter); } }
+0
Nifty! Grazie per il post. –
Problemi correlati
- 1. JSON: esiste un equivalente CDATA XML?
- 2. Esiste un equivalente XPath per Linq in XML?
- 3. Esiste un equivalente a "continua" in Parallel.ForEach?
- 4. Esiste un css equivalente a "align =" center ""?
- 5. Esiste un valore .Net equivalente a java.util.concurrent.Executor?
- 6. Esiste un equivalente C# a IsDebuggerPresent()?
- 7. Esiste un PHP equivalente a Compass?
- 8. Esiste un vim equivalente a '! $' Di bash?
- 9. Esiste un dplyr equivalente a data.table :: rleid?
- 10. Esiste un OO Perl equivalente a un'interfaccia?
- 11. Esiste un Python equivalente a HighLine?
- 12. Esiste un equivalente a memcpy() in Java?
- 13. Esiste un equivalente a SuppressWarnings in Scala?
- 14. Esiste un WPF equivalente a System.Windows.Forms.Screen?
- 15. Esiste un equivalente a `cabal-dev ghc`
- 16. Esiste un S4 equivalente a unlist()?
- 17. Esiste un equivalente InnerText in BeautifulSoup/python?
- 18. Esiste un RRDTool .net equivalente
- 19. Esiste un metodo equivalente LINQ?
- 20. Spring XML equivalente di @EnableAsync
- 21. Esiste un C++ equivalente a BigDecimal di Java?
- 22. Esiste un equivalente in C# a `reply_to? 'Di Ruby?
- 23. Esiste un Bazaar equivalente a `git commit --amend`?
- 24. Esiste un Objective-C equivalente a fatalError di Swift?
- 25. Esiste un equivalente a getBoundingClientRect() per i nodi di testo?
- 26. Esiste un javascript equivalente a decomprimere sequenze come in python?
- 27. Esiste un jQuery equivalente a Ruby's Object # tap?
- 28. Esiste un equivalente a urllib di python in c/C++?
- 29. Esiste un ColdFusion equivalente a PHP per include_once?
- 30. esiste un equivalente PHP per javascripts a = b && b.c || d
penso che non è esiste in visualizzazione elenco originale. Una possibile soluzione è estendere 'ListView' e creare attributi personalizzati per impostare la vista dell'intestazione. –
@ Yul Posso creare attributi personalizzati che possono essere utilizzati in un file di layout XML? Dovrò approfondire ulteriormente ... –
[** Qui **] (http://kevindion.com/2011/01/custom-xml-attributes-for-android-widgets/) amico –