質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

1回答

2650閲覧

xamarinでConstraintLayoutを使いたいが、layout_editor_absoluteXが効かない

TAKE_SS

総合スコア40

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2018/07/27 05:34

前提・実現したいこと

xamarinでConstraintLayoutを使いたい

発生している問題・エラーメッセージ

配置したボタンの位置が左上固定になってします
tools:layout_editor_absoluteX
及び
tools:layout_editor_absoluteY
で指定した位置にならない

ソースをみると
'http://schemas.android.com/tools:layout_editor_absoluteX'属性が宣言されていません
'http://schemas.android.com/tools:layout_editor_absoluteY'属性が宣言されていません
という青波線があるので、これが原因と思われるが、解消方法が分からない

該当のソースコード

レイアウトのソースは以下の通りです

<?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"
android:background="@drawable/background">
<Button android:id="@+id/myButton" android:layout_width="400dp" android:layout_height="100dp" android:text="@string/hello" tools:layout_editor_absoluteX="150dp" tools:layout_editor_absoluteY="250dp" />
<Button android:id="@+id/myButton2" android:layout_width="300dp" android:layout_height="150dp" android:text="@string/hello"/>

</android.support.constraint.ConstraintLayout>

試したこと

クリーンのあとにリビルド
入力ミスがないかチェック

補足情報(FW/ツールのバージョンなど)

Visual Studio 2017
xamarin.Android

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

tools:layout_editor_absoluteXでは、デザイナー画面でその位置に表示されるだけで、実際に動かした場合は、この通りに配置はされません。

ConstraintLayoutを使って、150dp,250dpの位置に配置するなら、以下のような記述になります。

xml

1<Button 2 android:id="@+id/myButton" 3 android:layout_width="400dp" 4 android:layout_height="100dp" 5 android:text="@string/hello" 6 android:layout_marginLeft="150dp" 7 android:layout_marginStart="150dp" 8 android:layout_marginTop="250dp" 9 app:layout_constraintStart_toStartOf="parent" 10 app:layout_constraintTop_toTopOf="parent" />

ちなみに、ConstraintLayoutを使う場合は、Visual Studioで、xml直書きするのは辛いので、Android Studioのデザイナーでレイアウトした後に、ソースをコピペするなりした方がいいですよ。

投稿2018/07/27 07:51

編集2018/07/27 08:05
f-miyu

総合スコア1625

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TAKE_SS

2018/07/27 08:18

なるほどです。 「layout_marginLeft」等で「...属性が宣言されていません」と行った青波線は出ていますが、 教えて頂いた内容で期待する位置に表示されるのが確認出来ました。 ありがとうございました。 基本的にはAndroid Studioのデザイナーで設定するつもりですが、 RelativeLayout 等も含め、どのレイアウトが良いか再検討してみたいと思います
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問