【发布时间】:2011-02-09 18:28:05
【问题描述】:
我正在制作一个必须以编程方式更改 UI 的应用程序。
我需要更改 layout_height 和 layout_width XML 属性。
但是当我使用setLayoutParams 方法时,应用程序运行,然后我给出一条消息,它意外停止工作,我必须强制关闭。
我也尝试将 LayoutParams 设置为 ViewGroup.LayoutParams。
但没有任何效果。请检查随附的代码和指南。
这是 Java 代码。
private void fixLayoutVmain(){
ListView lv;
ImageButton rev,stop,play,forw;
lv=(ListView)findViewById(R.id.ListMain);
rev=(ImageButton)findViewById(R.id.rev);
stop=(ImageButton)findViewById(R.id.stop);
play=(ImageButton)findViewById(R.id.plpa);
forw=(ImageButton)findViewById(R.id.forw);
Log.d("DEV1","ID's have been assigned");
LayoutParams lp=new LayoutParams(W, ((75*H)/100));
Log.d("DEV1","param object created");
lv.setLayoutParams(lp);
Log.d("DEV1","ListView param set");
lp.height=(int)(10*H)/100;
lp.width=(int)(10*H)/100;
Log.d("DEV1","Changes to param made");
rev.setLayoutParams(lp);
Log.d("DEV1","Reverse Button param applied");
stop.setLayoutParams(lp);
Log.d("DEV1","Stop button param applied");
play.setLayoutParams(lp);
Log.d("DEV1","forward button param applied");
forw.setLayoutParams(lp);
Log.d("DEV1","All imagebutton changes have been made");
}
这是 XML 文件
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListVieW
android:id="@+id/ListMain"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="bottom">
<ImageButton
android:id="@+id/rev"
android:src="@drawable/reverseimg"
android:background="@null"
android:scaleType="fitXY" />
<ImageButton
android:id="@+id/stop"
android:src="@drawable/stopimg"
android:background="@null"
android:scaleType="fitXY" />
<ImageButton
android:id="@+id/plpa"
android:src="@drawable/playimg"
android:background="@null"
android:scaleType="fitXY" />
<ImageButton
android:id="@+id/forw"
android:src="@drawable/forwardimg"
android:background="@null"
android:scaleType="fitXY" />
</LinearLayout>
</LinearLayout>
【问题讨论】:
-
错误日志会告诉你 a) 一个特定的错误,b) 你的代码的哪一行导致了错误。请发布这些详细信息。
-
要获取 logcat 日志,请在 eclipse 中打开 DDMS 透视图或从命令行运行
adb logcat。 -
我想知道你是如何调试代码的。