
我想设置默认情况下左侧显示的指示器图标,应该显示在右侧.
我曾尝试过在谷歌上找到的所有技术,但似乎我的expandableListvIEw有些问题或者有其他方法可以做到这一点,
我试过了 :
expListobj.setinicatorBounds(…)不起作用:(
在xml中添加属性
机器人:indicatorleft = “250dp”
android:indicatorRight =“300dp”不起作用:(
码:
public class MainActivity extends Activity { expandablelistadapter listadapter; ExpandableListVIEw expListVIEw; List<String> ListDataheader; HashMap<String, List<String>> ListDataChild; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); // get the ListvIEw expListVIEw = (ExpandableListVIEw) findVIEwByID(R.ID.lvExp); // preparing List data prepareListData(); setDimens(); listadapter = new expandablelistadapter(this, ListDataheader, ListDataChild); // setting List adapter expListVIEw.setAdapter(listadapter); // ListvIEw Group click Listener expListVIEw.setonGroupClickListener(new OnGroupClickListener() { @OverrIDe public boolean onGroupClick(ExpandableListVIEw parent, VIEw v, int groupposition, long ID) { // Toast.makeText(getApplicationContext(), // "Group Clicked " + ListDataheader.get(groupposition), // Toast.LENGTH_SHORT).show(); return false; } }); // ListvIEw Group expanded Listener expListVIEw.setonGroupExpandListener(new OnGroupExpandListener() { @OverrIDe public voID onGroupExpand(int groupposition) { Toast.makeText(getApplicationContext(), ListDataheader.get(groupposition) + " Expanded", Toast.LENGTH_SHORT).show(); } }); // ListvIEw Group collasped Listener expListVIEw.setonGroupCollapseListener(new OnGroupCollapseListener() { @OverrIDe public voID onGroupCollapse(int groupposition) { Toast.makeText(getApplicationContext(), ListDataheader.get(groupposition) + " Collapsed", Toast.LENGTH_SHORT).show(); } }); // ListvIEw on child click Listener expListVIEw.setonChildClickListener(new OnChildClickListener() { @OverrIDe public boolean onChildClick(ExpandableListVIEw parent, VIEw v, int groupposition, int childposition, long ID) { // Todo auto-generated method stub Toast.makeText( getApplicationContext(), ListDataheader.get(groupposition) + " : " + ListDataChild.get( ListDataheader.get(groupposition)).get( childposition), Toast.LENGTH_SHORT) .show(); return false; } }); } /* * Preparing the List data */ private voID prepareListData() { ListDataheader = new ArrayList<String>(); ListDataChild = new HashMap<String, List<String>>(); // Adding child data ListDataheader.add("myList0"); ListDataheader.add("myList1"); ListDataheader.add("myList2"); // Adding child data List<String> top250 = new ArrayList<String>(); myList0.add("item1"); myList0.add("item2"); myList0.add("item3"); List<String> myList1 = new ArrayList<String>(); myList1.add("Item1"); myList1.add("Item2"); myList1.add("Item3"); myList1.add("Item4"); myList1.add("Item5"); myList1.add("Item6"); List<String> myList2 = new ArrayList<String>(); myList2.add("item1"); ListDataChild.put(ListDataheader.get(0), myList0); // header, Child data ListDataChild.put(ListDataheader.get(1), myList1); ListDataChild.put(ListDataheader.get(2), myList2); } public int GetDipsFromPixel(float pixels) { // Get the screen's density scale final float scale = getResources().getdisplayMetrics().density; // Convert the dps to pixels, based on density scale return (int) (pixels * scale + 0.5f); } public voID setDimens() { display display = getwindowManager().getDefaultdisplay(); Point size = new Point(); display.getSize(size); int wIDth = size.x; int height = size.y; display display2 = getwindowManager().getDefaultdisplay(); int wIDth2 = display2.getWIDth(); // deprecated int height2 = display2.getHeight(); // deprecated //expListVIEw.setIndicatorBounds(wIDth2-GetDipsFromPixel(35), wIDth2-GetDipsFromPixel(5)); //not works expListVIEw.setIndicatorBounds(expListVIEw.getRight()- 40, expListVIEw.getWIDth()); //not works } }xml code:<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:orIEntation="vertical" androID:background="#f4f4f4" > <ExpandableListVIEw androID:ID="@+ID/lvExp" androID:layout_height="match_parent" androID:layout_wIDth="match_parent" androID:cachecolorHint="#00000000" <!-- androID:indicatorleft="250dp" androID:indicatorRight="300dp" --> /> </linearLayout>解决方法:
请尝试这个,它在我的场景中工作.
这是可扩展ListvIEw的xml编码
layout.xml
<ExpandableListVIEw androID:ID="@+ID/expandableListVIEw1" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:layout_alignParentleft="true" androID:layout_margintop="50dp" androID:groupIndicator="@drawable/group_indicator" androID:cachecolorHint="#00000000" androID:childdivIDer="@androID:color/transparent" androID:divIDer="#d4d4d4" androID:divIDerHeight="1dp" androID:scrollbars="vertical|horizontal" ></ExpandableListVIEw>group_indicator.xml
<?xml version="1.0" enCoding="utf-8"?><item androID:drawable="@drawable/arrow_right" androID:state_empty="true"></item><item androID:drawable="@drawable/arrow_down" androID:state_expanded="true"></item><item androID:drawable="@drawable/arrow_right"></item>然后在java文件中编码.
expandableExample.jav
displayMetrics metrics = new displayMetrics(); getwindowManager().getDefaultdisplay().getMetrics(metrics); int wIDth = metrics.wIDthPixels; if(androID.os.Build.VERSION.SDK_INT < androID.os.Build.VERSION_CODES.JELLY_BEAN_MR2) { expandableListVIEw.setIndicatorBounds(wIDth - GetPixelFromDips(50), wIDth - GetPixelFromDips(10)); searchExpListVIEw.setIndicatorBounds(wIDth - GetPixelFromDips(50), wIDth - GetPixelFromDips(10)); } else { expandableListVIEw.setIndicatorBoundsrelative(wIDth - GetPixelFromDips(50), wIDth - GetPixelFromDips(10)); searchExpListVIEw.setIndicatorBoundsrelative(wIDth - GetPixelFromDips(50), wIDth - GetPixelFromDips(10)); }public int GetPixelFromDips(float pixels) { // Get the screen's density scale final float scale = getResources().getdisplayMetrics().density; // Convert the dps to pixels, based on density scale return (int) (pixels * scale + 0.5f);}现在有可用的精美图书馆.如果您想使用recyclervIEw并希望使用自定义视图,请使用也解释可扩展示例的groupIE库. groupie.这个库需要androID数据绑定.在recyclervIEw中处理多个视图,并具有可扩展功能.
总结以上是内存溢出为你收集整理的android – 可扩展列表视图指示器未设置在右侧全部内容,希望文章能够帮你解决android – 可扩展列表视图指示器未设置在右侧所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)