可惜Moto360不利用歐洲尚未...回合Android Wear模擬器使用矩形佈局
我跑一個回合Android Wear模擬器,這是工作的罰款。
然而,當我運行Android Wear活動運行回合模擬器時(它使用WatchViewStub)所使用的佈局是rect_activy_layout而不是圓形佈局
任何人有這個問題還是解決?
謝謝
可惜Moto360不利用歐洲尚未...回合Android Wear模擬器使用矩形佈局
我跑一個回合Android Wear模擬器,這是工作的罰款。
然而,當我運行Android Wear活動運行回合模擬器時(它使用WatchViewStub)所使用的佈局是rect_activy_layout而不是圓形佈局
任何人有這個問題還是解決?
謝謝
有不正確使用WatchViewStub引起的膨脹佈局有很多問題。我沒有看到任何代碼確切地知道,但一個共同的問題是,當你註冊的手錶插圖一個偵聽器,以便您可以檢查它是否是圓的還是方的onApplyWindowInsets處理程序中:
final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
stub.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() {
@Override
public WindowInsets onApplyWindowInsets(View view, WindowInsets windowInsets) {
// Need to also call the original insets since we have overridden the original
// https://developer.android.com/reference/android/view/View.OnApplyWindowInsetsListener.html
stub.onApplyWindowInsets(windowInsets);
// this is where you would check the WindowInsets for isRound()
return windowInsets;
}
});
我看情況人們忘記返回windowInsets,或忘記調用stub.onApplyWindowInsets()。這具有提供方形佈局而不是圓形佈局的效果。
而且,有一個與內置於SDK的AndroidWearRound模擬器中的錯誤。其中有三個,如果你創建了錯誤的,它實際上會創建一個方形模擬器。確保你有三個模擬器,你選擇第二個之一。此錯誤已在最新的Android SDK Tools 23.0.4中修復,但可能是您的版本較舊。
你能告訴我們你周圍的WatchViewStub做的代碼?
一個簡單的解決方法是升級穿圓領模擬器API級別22,現在是出來。一般來說,我發現在API級別21的Wear Round模擬器有一些bug的行爲,但到目前爲止還沒有發現在API級別22的Round模擬器有任何問題。我認爲這將解決這個問題,因爲我有同樣的問題我自己在某個時候(這不是模擬器的設置問題)。
我實際上面臨着同樣的問題,我的摩托360我很感興趣,知道什麼別人沒有解決這個問題。 – kentarosu 2014-09-21 20:14:25
訂閱這個問題。 作爲一個醜陋的解決方法,你可以暫時設置你的圓形佈局,像這樣: 'app:rectLayout =「@ layout/round_activity_my'」 它會運行你的圓形佈局,認爲它是作爲矩形提供的... – 2014-09-23 10:11:12
I我一直在做這個非常「廉價」的工作。我的代碼對於rect來說都很好,所以在我承諾之後,我只是用圓形佈局樣式代碼覆蓋我的矩形佈局,一旦我很高興,我將我的圓形佈局代碼複製並粘貼到實際的round_layout_activity中,然後還原修改的rect_layout文件。 Blah ... – 2014-09-25 10:21:55