回答編集履歴

1

回答修正

2017/12/02 02:59

投稿

keicha_hrs
keicha_hrs

スコア6768

test CHANGED
@@ -1,44 +1,4 @@
1
- 質問の意図がわからで、回答欄せていだきます。onCreateでsetContentViewを2回呼び出していまそれ行うと下のよう動きになってしまいます。
2
-
3
-
4
-
5
-
6
-
7
- ```Kotlin
8
-
9
- override fun onCreate(savedInstanceState: Bundle?) {
10
-
11
- super.onCreate(savedInstanceState)
12
-
13
- setContentView(R.layout.activity_main) // activity_main.xmlによるレイアウトを表示する
14
-
15
-
16
-
17
- val textView = TextView(this)
18
-
19
-
20
-
21
- textView.setText("こんにちは")
22
-
23
-
24
-
25
- setContentView(textView) // 先のレイアウトを破棄してTextView1個だけのレイアウトを表示する
26
-
27
- }
28
-
29
- ```
30
-
31
-
32
-
33
- 2回目のsetContentViewによって、レイアウトエディターの編集によって出力されたactivity_main.xmlによるレイアウトは破棄されてしまいます。ですから、デザインをどのように設定しようとも、この時点で無意味です。そこを勘違いしている質問なのでしょうか?
34
-
35
-
36
-
37
- 一方で、Androidではコードのみでレイアウトを構成することも可能です。これはJavaでもKotlinでも同様です。ただし、それでTextViewのようなコンポーネントを任意の位置に配置するには、先に親となるLayoutコンポーネントを配置し、そのLayout上のどこに配置するかパラメーターを与えた上でTextViewなどのコンポーネントを配置するコードを記述する必要があります。その手順を求めている質問とも受け取れます。
38
-
39
-
40
-
41
- その上で、RelativeLayoutを親レイアウトとして配置し、その中央にTextViewを配置する、というのをKotlinで記述したら、こんな感じかと思います。
1
+ 先に親とるLayoutコンポーネントを配置し、そLayout上のどこ配置するパラメーターを与え上でTextViewなどのコンポーネントを配置するコードを記述する必要があります。RelativeLayoutを親レイアウトとして配置し、その中央(垂直表示という表現がよくわからないのだけど、画面中央という意味合いでいいのでしょうか?)にTextViewを配置というのKotlinで述したら、こん感じかと思います。
42
2
 
43
3
 
44
4