0

我创建了一个包含 3 个RelativeLayout包含的布局。其中 2 个是不可见的,当我按下一个按钮时,我想让它们可见并显示在顶部。可能吗?

我怎样才能制作安卓:

layout_below="@id/pag6a_1"

以编程方式?


这让我犯了一个错误!这是我的代码:`protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); 设置内容视图(R.layout.pag6a);

    RelativeLayout pag6a_2 = (RelativeLayout) findViewById(R.id.pag6a_2);
    RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) pag6a_2.getLayoutParams();

    pag6a_2.setVisibility(View.VISIBLE);
    params.addRule(RelativeLayout.BELOW, R.id.pag6a_3);`

..这是我的日志:

10-10 21:27:11.025:E/AndroidRuntime(3117):致命异常:主要 10-10 21:27:11.025:E/AndroidRuntime(3117):java.lang.RuntimeException:无法启动活动 ComponentInfo{com. beandroid.pirani/com.beandroid.pirani.Pag6A}:java.lang.ClassCastException:android.widget.LinearLayout$LayoutParams 无法转换为 android.widget.RelativeLayout$LayoutParams 10-10 21:27:11.025:E/AndroidRuntime( 3117): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 10 -10 21:27:11.025: E/AndroidRuntime(3117): 在 android.app.ActivityThread.access$600(ActivityThread.java:141) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在 android. app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在 android.os.Handler.dispatchMessage(Handler.java:99) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在android.os.Looper.loop(Looper.java:137) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在 android.app.ActivityThread.main(ActivityThread.java:5041) 10-10 21: 27:11.025: E/AndroidRuntime(3117): 在 java.lang.reflect.Method.invokeNative(Native Method) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在 java.lang.reflect.Method。调用(Method.java:511)10-10 21:27:11.025:E/AndroidRuntime(3117):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)10-10 21: 27:11.025: E/AndroidRuntime(3117): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在 dalvik.system .NativeStart。main(Native Method) 10-10 21:27:11.025: E/AndroidRuntime(3117): Caused by: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams 无法转换为 android.widget.RelativeLayout$LayoutParams 10- 10 21:27:11.025: E/AndroidRuntime(3117): 在 com.beandroid.pirani.Pag6A.onCreate(Pag6A.java:44) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在 android。 app.Activity.performCreate(Activity.java:5104) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 10-10 21:27: 11.025: E/AndroidRuntime(3117): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 10-10 21:27:11.025: E/AndroidRuntime(3117): ... 11 更多LinearLayout$LayoutParams 无法转换为 android.widget.RelativeLayout$LayoutParams 10-10 21:27:11.025: E/AndroidRuntime(3117): at com.beandroid.pirani.Pag6A.onCreate(Pag6A.java:44) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在 android.app.Activity.performCreate(Activity.java:5104) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在 android.app.Instrumentation .callActivityOnCreate(Instrumentation.java:1080) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 10-10 21:27:11.025: E /AndroidRuntime(3117): ... 11 更多LinearLayout$LayoutParams 无法转换为 android.widget.RelativeLayout$LayoutParams 10-10 21:27:11.025: E/AndroidRuntime(3117): at com.beandroid.pirani.Pag6A.onCreate(Pag6A.java:44) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在 android.app.Activity.performCreate(Activity.java:5104) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在 android.app.Instrumentation .callActivityOnCreate(Instrumentation.java:1080) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 10-10 21:27:11.025: E /AndroidRuntime(3117): ... 11 更多app.Activity.performCreate(Activity.java:5104) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 10-10 21:27: 11.025: E/AndroidRuntime(3117): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 10-10 21:27:11.025: E/AndroidRuntime(3117): ... 11 更多app.Activity.performCreate(Activity.java:5104) 10-10 21:27:11.025: E/AndroidRuntime(3117): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 10-10 21:27: 11.025: E/AndroidRuntime(3117): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 10-10 21:27:11.025: E/AndroidRuntime(3117): ... 11 更多

4

2 回答 2

1

我猜你正在寻找这样的东西。-

RelativeLayout yourLayout = (RelativeLayout) findViewById(R.id.yourLayoutId);
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) yourLayout.getLayoutParams();
params.addRule(RelativeLayout.BELOW, R.id.pag6a_1);
于 2013-10-10T21:05:49.087 回答
0

如果我的问题是正确的,最好有一个Linearlayout. 里面那个 aViewFlipper和 a里面button的。RelativeLayoutViewFlipper

ViewFlipper fliper = (ViewFlipper) findViewById(R.id.viewFlipperid);

并在按钮中onClick添加“flipper.showNext”。

于 2013-10-10T21:47:05.810 回答