在不同的屏幕分辨率下等于TextView高度

时间:2014-01-12 14:43:58

标签: android android-layout listview

在布局上我有listview

<com...DynamicListView 
        android:id="@+id/listview" 
        android:layout_width="fill_parent" 
        android:layout_height="5dp" 
        android:layout_marginLeft="20dp" 
        android:layout_marginRight="20dp" 
        android:layout_marginTop="20dp" 
        android:layout_weight="0.34" 
        android:background="#0000" 
        android:divider="@null" 
        android:dividerHeight="5dp" /> 

添加了第4个TextView。 的 text_view.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="60dp" 
    android:gravity="center" 
    android:textColor="#000000" 
    android:textSize="@dimen/list_text_size" />

如何将它们制作成相同的高度,并在不同分辨率的屏幕上攀爬到屏幕上(没有滚动的外观)?

更新

public class StableArrayAdapter extends ArrayAdapter<String> {

public StableArrayAdapter(Context context, int textViewResourceId, List<String> objects) {
    super(context, textViewResourceId, objects);
    for (int i = 0; i < objects.size(); ++i) {
        mIdMap.put(objects.get(i), i);
    }
}

...

@Override
public View getView(int position, View convertView, ViewGroup parent) {
  View view = super.getView(position, convertView, parent);
  ...
  int myDPValue = 60;
  myDPValue = (int) ((int) myDPValue * Resources.getSystem().getDisplayMetrics().density);
  (LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, myDPValue);
  view.setLayoutParams(params);

  return view;
}
}

2 个答案:

答案 0 :(得分:1)

如果我正确理解了这个问题,您需要根据各种设备的屏幕尺寸调整高度。为此,您可以利用res/values/dimens.xml文件以及Android执行资源配置的方式。您可以为每个屏幕密度或大小重新定义相同的dimen。请参阅以下链接以获取答案:

答案 1 :(得分:1)

如果您不想滚动,则不应使用ListView。您应该使用具有垂直方向的LinearLayout,并且如果您希望调整它们以适应屏幕上的可用空间,则对项目使用相同的权重。