android在两个设备上的文本视图的不同位置

时间:2016-03-22 12:25:39

标签: android

在我的Android应用程序中,我有一个自定义表列表视图。 第一行有一个textview:

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView"
        android:layout_below="@+id/textView2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:textSize="13sp"
        android:layout_marginLeft="20dp"
        android:layout_toLeftOf="@+id/Seperator"
        android:layout_toStartOf="@+id/Seperator"
        android:layout_marginRight="10dp" />

我隐藏textView2和另一个视图(分隔符) 然后移动textView:

textView2.setAlpha(0);
Seperator.setAlpha(0);

parameter = (RelativeLayout.LayoutParams) textView.getLayoutParams();
parameter.setMargins(parameter.leftMargin,parameter.topMargin - 28, parameter.rightMargin, parameter.bottomMargin);

textView.setLayoutParams(parameter);

在我的Samsung S4 API 21上看起来不错:

enter image description here

但是在我的sony experia(api 18)上,它有不同的立场:

enter image description here

哪里可能是我的错?

2 个答案:

答案 0 :(得分:0)

  

Becoz你硬编码的textview大小。你需要在不同的维度文件夹中定义。就像

values-sw300dp-dimens.xml
values-sw480dp-dimens.xml
values-sw600dp-dimens.xml
values-sw800dp-dimens.xml

答案 1 :(得分:0)

好的,我找到了解决方案:

 View.OnClickListener click= new View.OnClickListener() {
      @Override
      public void onClick(View v) {
          switch (v.getId()){

              case R.id.btn1:
                  activity1();
                  break;

              case R.id.btn2:
                  activity2();
                  break;

              case R.id.btn3:
                  activity3();
                  break;

              case R.id.btn4:
                  activity4();
                  break;

          }

      }
  };