回答編集履歴

5

説明修正

2021/11/23 02:23

投稿

jimbe
jimbe

スコア12612

test CHANGED
@@ -168,4 +168,4 @@
168
168
 
169
169
  ```
170
170
 
171
- フラグメントのレイアウトやアニメーションリソースはご質問のそのままを使わせて頂きました。(Image は画像リソースがありませんので消しました。)
171
+ フラグメントのレイアウトやアニメーションリソースはご質問のそのままを使わせて頂きました。(ImageView は画像リソースがありませんので消しました。)

4

テストコード追加

2021/11/23 02:23

投稿

jimbe
jimbe

スコア12612

test CHANGED
@@ -17,3 +17,155 @@
17
17
 
18
18
 
19
19
  Fragment には getContext() もありますが、 onViewCreated() 内であれば requireContext() で良いように思います。( 試していませんがどちらを使っても onCreateView() 内では動作しないかもしれません。)
20
+
21
+
22
+
23
+ ----
24
+
25
+
26
+
27
+ アニメーションテストに使用したコードです。(ほぼそのままですが^^; )
28
+
29
+
30
+
31
+ MainActivity.java
32
+
33
+ ```java
34
+
35
+ package com.teratail.q370355;
36
+
37
+
38
+
39
+ import androidx.appcompat.app.AppCompatActivity;
40
+
41
+
42
+
43
+ import android.os.Bundle;
44
+
45
+
46
+
47
+ public class MainActivity extends AppCompatActivity {
48
+
49
+
50
+
51
+ @Override
52
+
53
+ protected void onCreate(Bundle savedInstanceState) {
54
+
55
+ super.onCreate(savedInstanceState);
56
+
57
+ setContentView(R.layout.activity_main);
58
+
59
+
60
+
61
+ getSupportFragmentManager().beginTransaction()
62
+
63
+ .replace(R.id.fragment_container, new MainFragment())
64
+
65
+ .commit();
66
+
67
+ }
68
+
69
+ }
70
+
71
+ ```
72
+
73
+ レイアウト: activity_main.xml
74
+
75
+ ```xml
76
+
77
+ <?xml version="1.0" encoding="utf-8"?>
78
+
79
+ <androidx.constraintlayout.widget.ConstraintLayout
80
+
81
+ xmlns:android="http://schemas.android.com/apk/res/android"
82
+
83
+ xmlns:tools="http://schemas.android.com/tools"
84
+
85
+ android:layout_width="match_parent"
86
+
87
+ android:layout_height="match_parent"
88
+
89
+ android:id="@+id/fragment_container"
90
+
91
+ tools:context=".MainActivity">
92
+
93
+
94
+
95
+ </androidx.constraintlayout.widget.ConstraintLayout>
96
+
97
+ ```
98
+
99
+ MainFragment.java
100
+
101
+ ```java
102
+
103
+ package com.teratail.q370355;
104
+
105
+
106
+
107
+ import android.animation.AnimatorInflater;
108
+
109
+ import android.animation.AnimatorSet;
110
+
111
+ import android.os.Bundle;
112
+
113
+ import android.view.*;
114
+
115
+ import android.widget.TextView;
116
+
117
+
118
+
119
+ import androidx.annotation.*;
120
+
121
+ import androidx.fragment.app.Fragment;
122
+
123
+
124
+
125
+ public class MainFragment extends Fragment {
126
+
127
+ private AnimatorSet animator1;
128
+
129
+ private TextView frma_tv1;
130
+
131
+
132
+
133
+ @Override
134
+
135
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
136
+
137
+ return inflater.inflate(R.layout.fragment_main, container, false);
138
+
139
+ }
140
+
141
+
142
+
143
+ @Override
144
+
145
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
146
+
147
+ super.onViewCreated(view, savedInstanceState);
148
+
149
+
150
+
151
+ //MainViewModel vm = new ViewModelProvider(requireActivity()).get(MainViewModel.class);
152
+
153
+
154
+
155
+ frma_tv1 = view.findViewById(R.id.frma_tv1);
156
+
157
+
158
+
159
+ animator1=(AnimatorSet)AnimatorInflater.loadAnimator(requireContext(),R.animator.animator1);
160
+
161
+ animator1.setTarget(frma_tv1);
162
+
163
+ animator1.start();
164
+
165
+ }
166
+
167
+ }
168
+
169
+ ```
170
+
171
+ フラグメントのレイアウトやアニメーションリソースはご質問のそのままを使わせて頂きました。(Image は画像リソースがありませんので消しました。)

3

脱字(?)

2021/11/23 02:22

投稿

jimbe
jimbe

スコア12612

test CHANGED
@@ -16,4 +16,4 @@
16
16
 
17
17
 
18
18
 
19
- Fragment には getContext() もありますが、 onViewCreated() 内であれば requireContext で良いように思います。( 試していませんがどちらを使っても onCreateView() 内では動作しないかもしれません。)
19
+ Fragment には getContext() もありますが、 onViewCreated() 内であれば requireContext() で良いように思います。( 試していませんがどちらを使っても onCreateView() 内では動作しないかもしれません。)

2

追加

2021/11/21 10:53

投稿

jimbe
jimbe

スコア12612

test CHANGED
@@ -5,6 +5,8 @@
5
5
  そこで「よく分からない」とテキトウに弄っては、プログラミングとして間違っています。
6
6
 
7
7
  「なぜ」エラーなのかを突き詰めて原因を特定したうえで、対策しなければなりません。
8
+
9
+ ですので、ご質問の際には単に「エラーです」では無く、 **エラーとして表示されているメッセージを一緒にご提示頂けますよう** お願いします。
8
10
 
9
11
 
10
12
 

1

表現変更

2021/11/21 10:51

投稿

jimbe
jimbe

スコア12612

test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- [AnimatorInflater.loadAnimator](https://developer.android.com/reference/android/animation/AnimatorInflater#loadAnimator(android.content.Context,%20int)) の第一パラメータは Context ですので、Activity 上では this が (Context を継承している ) 自身を指しますのでエラーにはなりませんが、 Fragment 上では (Context を継承していない ) 自身を指しますのでエラーになったものと思います。
11
+ [AnimatorInflater.loadAnimator](https://developer.android.com/reference/android/animation/AnimatorInflater#loadAnimator(android.content.Context,%20int)) の第一パラメータは Context ですので、Activity 上では this が "Context を継承している" 自身を指しますのでエラーにはなりませんが、 Fragment 上では "Context を継承していない" 自身を指しますのでエラーになったものと思います。
12
12
 
13
13
  ですので、 onCreateView にコードを移しても同じことです。
14
14