android– 可扩展列表视图指示器未设置在右侧

android– 可扩展列表视图指示器未设置在右侧,第1张

概述我想设置默认情况下左侧显示的指示器图标,应该显示在右侧.我曾尝试过在谷歌上找到的所有技术,但似乎我的expandablelistview有些问题或者有其他方法可以做到这一点,我试过了:explistobj.setInicatorBounds(…)不起作用:(在xml中添加属性机器人:indicatorLeft=“250dp”android:indi

我想设置默认情况下左侧显示的指示器图标,应该显示在右侧.
我曾尝试过在谷歌上找到的所有技术,但似乎我的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 – 可扩展列表视图指示器未设置在右侧所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1120235.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存