setLayoutParams不生效,请大家指点

arm_linux_gc 2015-01-24 12:17:47
大家好,
我想实现能改变menu_layout的位置,使用如下代码实现,但运行没有效果,请大家指导下,谢谢。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
public boolean onTouchEvent( MotionEvent event) {
RelativeLayout layout = (RelativeLayout) this.getLayoutInflater().inflate(R.layout.activity_main, null);
LinearLayout menu_layout = (LinearLayout)layout.findViewById(R.id.menu);
mp = (MarginLayoutParams)menu_layout.getLayoutParams();
mp.leftMargin=200;
mp.topMargin=200;
menu_layout.setLayoutParams(mp);
return true;
}





布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="horizontal"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#f00"
android:id="@+id/menu">

<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />

</LinearLayout>

<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="hello" />


</RelativeLayout>
...全文
1612 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
LinearLayout layout=(LinearLayout)findViewById(R.id.leftLayout); LayoutParams params=(LinearLayout.LayoutParams)layout.getLayoutParams(); params.topMargin= 200; params.leftMargin = 200;
水的川 2015-01-24
  • 打赏
  • 举报
回复
LinearLayout layout=(LinearLayout)findViewById(R.id.leftLayout); LayoutParams params=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.MATCH_PARENT); params.leftMargin=200; params.rightMargin=200; layout.setLayoutParams(params);
arm_linux_gc 2015-01-24
  • 打赏
  • 举报
回复
        RelativeLayout layout  = (RelativeLayout) this.getLayoutInflater().inflate(R.layout.activity_main, null); 去掉这句就对了。
arm_linux_gc 2015-01-24
  • 打赏
  • 举报
回复
引用 5 楼 u013377714 的回复:
请问你想实现什么效果??
您好: 我看了这篇博客http://blog.csdn.net/guolin_blog/article/details/8714621; 想仿照他通过修改leftmargin来实现滑动。
水的川 2015-01-24
  • 打赏
  • 举报
回复
请问你想实现什么效果??
arm_linux_gc 2015-01-24
  • 打赏
  • 举报
回复
引用 3 楼 SimonHuangwei1 的回复:
LinearLayout.LayoutParams p= new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGrou p.LayoutParams.MATCH_PARENT); p.setMargins(0,0,0,0); v.setLayoutParams(p); 可以这样吗?
也不行的
hweill 2015-01-24
  • 打赏
  • 举报
回复
LinearLayout.LayoutParams p= new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGrou p.LayoutParams.MATCH_PARENT); p.setMargins(0,0,0,0); v.setLayoutParams(p); 可以这样吗?
arm_linux_gc 2015-01-24
  • 打赏
  • 举报
回复
引用 1 楼 u013377714 的回复:
LinearLayout layout=(LinearLayout)findViewById(R.id.leftLayout); LayoutParams params=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.MATCH_PARENT); params.leftMargin=200; params.rightMargin=200; layout.setLayoutParams(params);
这段编译不过。params没leftmargin成员。我转成LienarLayout.LayoutParams后也是一个效果

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧