相关疑难解决方法(0)

计算布局后如何获得Android小部件的大小?

我有一个布局,指定相对维度的小部件大小,例如:

<LinearLayout ... layout_height="fill_parent">
     <ImageView ... layout_height="wrap_content" />
     <TextView ... layout_height="120dp" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

紧接着onCreate,我想知道ImageView的高度是多少.怎么做?

注:如果我打电话getHeight()onCreate,我得到0.

我也试过imageView.postDelayed,它适用于2.1模拟器但在1.5模拟器上失败(我也得到0).

最后,我尝试创建一个Handler,然后我handler.postDelayed用10毫秒的延迟调用.它适用于2.1和1.5模拟器,但是当我在eclipse调试器中启动程序时失败(因此,我得出结论,使用延迟并不能保证在imageview布局后获得高度.)

layout android handler postdelayed android-linearlayout

11
推荐指数
2
解决办法
2万
查看次数

计算ListView的每一行的高度

我试图使用ListView创建ListView滚动的背景.我的方法是基于货架上的这个课程,但在货架上一切都有相同的高度,我无法做出同样的保证.

我有这样的活动:

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView listView = (ListView) findViewById(R.id.listView);

        List<String> items = new ArrayList<String>();
        for(int i=0; i < 100; ++i) {
            items.add("Hello " + i);
        }
        CustomArrayAdapter adapter = new CustomArrayAdapter(this, items);

        listView.setAdapter(adapter);
    }
}
Run Code Online (Sandbox Code Playgroud)

CustomArrayAdapter的位置是:

public class CustomArrayAdapter extends ArrayAdapter<String> {
    private List<Integer> mHeights;

    public View getView(int position, View convertView, ViewGroup parent) {
        //snip
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是在适配器中使用视图行的高度填充mHeights.

我的主要尝试是在getView()中执行此操作:

if(row.getMeasuredHeight() == 0) {
    row.measure(
        MeasureSpec.makeMeasureSpec(0, MeasureSpec.EXACTLY), …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-listview

6
推荐指数
1
解决办法
8158
查看次数