java - 类型不匹配 : cannot convert from ViewGroup. LayoutParams 到 LinearLayout.LayoutParams

标签 java android xml android-layout

我正尝试按照发布在以下位置的示例编写周历:
How can I create a weekly calendar view for an Android Honeycomb application?
我已经在发布的 XML 文件中添加了一个时间标记行,该行应该是当前时间。为此,我使用:

<LinearLayout
    android:id="@+id/currentTimeMarkerLinearLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="0dp"
    android:layout_marginTop="120dp"
    android:baselineAligned="false"
    android:orientation="horizontal"
    android:padding="0dp" >

  <View
      android:layout_width="0dp"
      android:layout_height="3dp"
      android:layout_weight="1" />

  <View
      android:id="@+id/currentTimeLineView"
      android:layout_width="0dp"
      android:layout_height="1dp"
      android:layout_weight="14"
      android:background="@color/dark_blue" />
</LinearLayout>

这个 LinearLayoutRelativeLayout 中,它们都在 ScrollView 中。
我试图通过编程“移动”这一行,方法是使用以下行修改 layout_margintTop:

int dipValue = 720; // we want to convert this dip value to pix
Resources r = getResources();
float pix = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
    dipValue, r.getDisplayMetrics());

LinearLayout lay =(LinearLayout) findViewById(R.id.currentTimeMarkerLinearLayout);
LinearLayout.LayoutParams lp = lay.getLayoutParams();
lp.setMargins(0, (int) pix, 0, 0);
lay.setLayoutParams(lp);  

但我在 lp = lay.getLayoutParams() 中收到错误,告诉我它无法从 ViewGroup.LayoutParams 转换为 LinearLayout.LayoutParams.

我做错了什么?

最佳答案

But I get an error in lp = lay.getLayoutParams() telling me that it can't convert from ViewGroup.LayoutParams to LinearLayout.LayoutParams.

如果 LinearLayoutRelativeLayout 包装,那么它的 LayoutpParamsRelativeLayout.LayoutParams 类型( child 从 parent 获取 LayoutParams)。您很可能还为代码中使用的 LayoutParams 导入了错误的类。

LinearLayout lay = (LinearLayout) findViewById(R.id.currentTimeMarkerLinearLayout);
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams)lay.getLayoutParams();

关于java - 类型不匹配 : cannot convert from ViewGroup. LayoutParams 到 LinearLayout.LayoutParams,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13744056/

相关文章:

java - 如何停止 Flume 的 HTTP 源

java - JPanel 中的自动循环滚动 Activity 内容 - 选取框文本

android - 如何设置EditText的默认键盘

java - onClick 从MainActivity 调用接口(interface)方法

c++ - pugixml - 获取所有文本节点 (PCDATA),而不仅仅是第一个

xml - XSD 重用选择的元素而不包装它

java - 如何在 Java 中比较字符串?

android - 如何在 Android Studio 1.0 中设置 Robolectric

xml - 在 Angular 5 上从 HTTPClient 检索 XML

java - 地址在本地计算机上无效 [仅限 Windows 8]