Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取动态创建的表的表宽?_Java_Android_Dynamic_Width_Tablerow - Fatal编程技术网

Java 如何获取动态创建的表的表宽?

Java 如何获取动态创建的表的表宽?,java,android,dynamic,width,tablerow,Java,Android,Dynamic,Width,Tablerow,我正在开发一个用于语言学习的应用程序。我想直接在外语单词下面显示翻译。我目前试图通过使用动态创建的表来实现这一点。但是表格变得比显示宽度更宽,很多表格都看不见了。我想测试这些单词是否会被放在视线之外,在这种情况下,继续将这些单词写在下面的新表格中 如何在运行时获取表的宽度 我是android编程新手。你有没有更好的办法在屏幕上显示不同语言的文本 Resources res = getResources(); cn = res.getStringArray(R.array.les

我正在开发一个用于语言学习的应用程序。我想直接在外语单词下面显示翻译。我目前试图通过使用动态创建的表来实现这一点。但是表格变得比显示宽度更宽,很多表格都看不见了。我想测试这些单词是否会被放在视线之外,在这种情况下,继续将这些单词写在下面的新表格中

如何在运行时获取表的宽度

我是android编程新手。你有没有更好的办法在屏幕上显示不同语言的文本

Resources res  = getResources();
        cn = res.getStringArray(R.array.lesson5_1_HanYu);
        py = res.getStringArray(R.array.lesson5_1_pinyin);
        dt = res.getStringArray(R.array.lesson5_1_deutsch);

        Intent in = getIntent();
        int index = in.getIntExtra("com.example.ITEM_INDEX", -1);

        TableLayout tableLayout;
        TableRow tableRow1, tableRow2, tableRow3;
        TextView cn1TV, py1TV, dt1TV, cn2TV, py2TV, dt2TV, cn3TV, py3TV, dt3TV;
        TextView[] cnTV = new TextView[cn.length];
        TextView[] pyTV = new TextView[py.length];
        TextView[] dtTV = new TextView[dt.length];

        if(index > -1){

            tableLayout = new TableLayout(this);
            tableRow1 = new TableRow(this);
            tableRow2 = new TableRow(this);
            tableRow3 = new TableRow(this);
            TableLayout.LayoutParams lp = new TableLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

            int i = 0;
            boolean lineEnd = false;
            while(i < cn.length && lineEnd == false){
                cnTV[i] = new TextView(this);
                cnTV[i].setText(cn[i] + " ");
                pyTV[i] = new TextView(this);
                pyTV[i].setText(py[i] + " ");
                dtTV[i] = new TextView(this);
                dtTV[i].setText(dt[i] + " ");

                tableRow1.addView(cnTV[i]);
                tableRow2.addView(pyTV[i]);
                tableRow3.addView(dtTV[i]);

                // Check if next string is still in DisplayView area:

                // Code ...
                // change value of lineEnd if necessary


                i++; // proceed with next element in next interation
            }

            tableLayout.addView(tableRow1);
            tableLayout.addView(tableRow2);
            tableLayout.addView(tableRow3);

            setContentView(tableLayout);

        }
Resources res=getResources();
cn=res.getStringArray(R.array.lesson5\u 1\u HanYu);
py=res.getStringArray(R.array.lesson5\u 1\u拼音);
dt=res.getStringArray(R.array.lesson5_1_deutsch);
Intent in=getIntent();
int index=in.getIntExtra(“com.example.ITEM_index”,-1);
表布局表布局;
TableRow tableRow1、tableRow2、tableRow3;
TextView cn1TV、py1TV、dt1TV、cn2TV、py2TV、dt2TV、cn3TV、py3TV、dt3TV;
TextView[]cnTV=新的TextView[cn.length];
TextView[]pyTV=新的TextView[py.length];
TextView[]dtTV=新的TextView[dt.length];
如果(索引>-1){
tableLayout=新的tableLayout(本);
tableRow1=新的TableRow(本);
tableRow2=新的TableRow(本);
tableRow3=新的TableRow(本);
TableLayout.LayoutParams lp=新的TableLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_父级,ViewGroup.LayoutParams.MATCH_父级);
int i=0;
布尔lineEnd=false;
而(i
这是我的一个项目中的一个代码示例,我在其中测量了一个textview。你可以测量一排桌子

 TextView filter = findViewById(R.id.list_filter);
           filter.measure(0, 0);

           int center = filter.getLeft() + filter.getMeasuredWidth()/2;

            Point p =  new  ViewTarget(filter).getPoint();




                    Log.i(TAG, "x: " + p.x
                    + " width: " + filter.getWidth()
                    + " right: " + filter.getRight()
                    + " left: " + filter.getLeft()
                    + " measured: " + filter.getMeasuredWidth()
            );

            Log.i(TAG,  "value: " + (0- filter.getLeft() - filter.getMeasuredWidth()));

这是我的一个项目中的一个代码示例,我在其中测量了一个textview。你可以测量一排桌子

 TextView filter = findViewById(R.id.list_filter);
           filter.measure(0, 0);

           int center = filter.getLeft() + filter.getMeasuredWidth()/2;

            Point p =  new  ViewTarget(filter).getPoint();




                    Log.i(TAG, "x: " + p.x
                    + " width: " + filter.getWidth()
                    + " right: " + filter.getRight()
                    + " left: " + filter.getLeft()
                    + " measured: " + filter.getMeasuredWidth()
            );

            Log.i(TAG,  "value: " + (0- filter.getLeft() - filter.getMeasuredWidth()));