アイデアは、RelativeLayout上のタッチリスナーの助けを借りて、自身のサイズ(幅と高さ)を変更することです。 RelativeLayoutの中の子はGridLayoutです。それ自体は複数のFrameLayouts(これは関係ないと思います)から構成されています。 GridLayoutの幅と高さはmatch_parentに設定されています(RelativeLayoutの場合のように)。理論では、GridLayoutは実行時にその親に応じて変更する必要があります。GridLayoutを子として持つRelativeLayoutの幅を変更するにはどうすればよいですか?
しかし、私は、私は、このエラーメッセージを取得RelativeLayoutのパラメータ変更しようとするたびに:
android.widget.RelativeLayout $ LayoutParamsがandroid.support.constraint.ConstraintLayout $ LayoutParams
にキャストすることはできませんここでは、XMLレイアウトの関連する部分である
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/maingrid">
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="4"
android:rowCount="4"
android:id="@+id/grid">
<FrameLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1">
ここでは、コードです
private RelativeLayout Wall = findViewById(R.id.maingrid);
Wall.setLayoutParams(new RelativeLayout.LayoutParams(newWidth,newHeight));
RelativeLayout.LayoutParamsを例外エラーを回避しようとする他のクラスに変更しようとしました。しかし私はちょうど私の方法で投げられた他の同様の例外エラーを得る。私は何かが欠けているかもしれないと思う。
は、グリッドレイアウトを持つXMLファイルをに含まれていること
編集
多分
私が言及しているはずですが、上記のXMLレイアウト構造を使用して、実行時に必要な行動を生成することも可能です
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.example.lucy.pixelli.MainActivity"
tools:showIn="@layout/activity_main">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
</RelativeLayout>
<include layout="@layout/grid" />
以下の主なレイアウトは、これは完全なエラーメッセージ
ですFATAL EXCEPTION: main
Process: com.example.lucy.pixelli, PID: 11119
java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.support.constraint.ConstraintLayout$LayoutParams
at android.support.constraint.ConstraintLayout.getViewWidget(ConstraintLayout.java:877)
at android.support.constraint.ConstraintLayout.setChildrenConstraints(ConstraintLayout.java:643)
at android.support.constraint.ConstraintLayout.updateHierarchy(ConstraintLayout.java:631)
at android.support.constraint.ConstraintLayout.onMeasure(ConstraintLayout.java:971)
at android.view.View.measure(View.java:19978)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6127)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:19978)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6127)
at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:714)
at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:786)
at android.view.View.measure(View.java:19978)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6127)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)
at android.view.View.measure(View.java:19978)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6127)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
at android.view.View.measure(View.java:19978)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6127)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:19978)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6127)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
at android.view.View.measure(View.java:19978)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6127)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:694)
at android.view.View.measure(View.java:19978)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2405)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1457)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1720)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1333)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6675)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:887)
at android.view.Choreographer.doCallbacks(Choreographer.java:699)
at android.view.Choreographer.doFrame(Choreographer.java:634)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:873)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6349)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:783)
ViewGroup.LayoutParams
はあなたのコードの残りの部分を表示するタイプのすべてのフィールドを使用できますか?スタックトレース自体もうまくいくでしょう。 – elmorabeaああ、実際に、上記のシナリオとはまったく無関係にFrameLayoutを設定していて、エラーが発生していることが分かりました。それを取り除き、質問を編集しました。なぜなら、上記の例外エラーがまだ表示されているからです。それは私のRelativeLayoutの親と関係があります。 XMLファイルを拡張して、ConstrainedLayoutが見えるようにしました。 – user3498845
私は、RelativeLayoutの親への呼び出しを行っているため、どうやらこのエラーが発生しています。しかし、私が望むのは、GridLayoutを保持するRealtiveLayoutのサイズを変更することだけです。それ、どうやったら出来るの ? – user3498845